:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#142033;background:#f3f6fb;font-size:16px;--nav:#062b50;--blue:#1677ff;--line:#dfe6ef;--muted:#6b7a90;--green:#15a060;--orange:#f59e0b;--red:#e5484d}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#052744,#0f5aa6)}.login-card{width:min(430px,90vw);background:white;padding:40px;border-radius:18px;box-shadow:0 24px 70px #001b3699}.brand{font-size:24px;font-weight:800;color:#123b5d;display:flex;gap:12px;align-items:center}.brand-badge{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#1581ff,#0b50c7);display:grid;place-items:center;color:white}.login-card h1{font-size:22px;margin:32px 0 8px}.hint{color:var(--muted);font-size:14px}.field{display:grid;gap:7px;margin:18px 0}.field label{font-weight:650;font-size:14px}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:9px;padding:11px 13px;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1677ff1c}.btn{border:1px solid var(--line);background:white;padding:9px 16px;border-radius:8px;cursor:pointer}.btn:hover{border-color:#9db5d0}.btn.primary{background:var(--blue);color:white;border-color:var(--blue);font-weight:700}.btn.danger{color:var(--red)}.btn.full{width:100%;padding:12px}.shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,#062b50,#031d38);color:#d9e8f7;padding:22px 14px;position:fixed;inset:0 auto 0 0;width:245px}.side .brand{color:white;padding:0 10px 24px}.nav{display:grid;gap:5px}.nav button{background:transparent;border:0;color:#d8e6f4;text-align:left;padding:12px 15px;border-radius:8px;cursor:pointer;font-weight:650}.nav button:hover,.nav button.active{background:#1677ff;color:white}.side-foot{position:absolute;bottom:20px;left:20px;font-size:14px;color:#abc0d3}.main{grid-column:2;min-width:0}.top{height:68px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:4}.top .search{width:min(520px,45vw);border:1px solid var(--line);border-radius:9px;padding:10px 14px}.user{display:flex;gap:14px;align-items:center}.avatar{width:36px;height:36px;border-radius:50%;background:#e6f1ff;color:#1769c7;display:grid;place-items:center;font-weight:800}.content{padding:26px 30px 44px;max-width:1600px;margin:auto}.pagehead{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.pagehead h1{font-size:25px;margin:0}.cards{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 2px 8px #0b325708}.kpi .label{color:var(--muted);font-size:14px}.kpi .value{font-size:28px;font-weight:800;margin:8px 0 2px}.grid2{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-top:16px}.card h2{font-size:17px;margin:0 0 15px}.bars{display:grid;gap:14px}.bar-row{display:grid;grid-template-columns:90px 1fr 85px;align-items:center;gap:12px}.bar{height:10px;background:#e7edf5;border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#1683ff,#2db3f6);border-radius:10px}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.status-box{padding:14px;background:#f6f9fc;border-radius:9px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.toolbar input,.toolbar select{border:1px solid var(--line);background:white;border-radius:8px;padding:9px 12px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;white-space:nowrap}.table th,.table td{text-align:left;padding:13px 14px;border-bottom:1px solid #e8edf3;font-size:14px}.table th{background:#f7f9fc;color:#53657a;font-weight:700}.table tbody tr:hover{background:#f7fbff}.badge{display:inline-flex;padding:4px 9px;border-radius:20px;font-size:12px;font-weight:700;background:#e9f2ff;color:#166bd4}.badge.REPAIRING{background:#e8f1ff;color:#1464d2}.badge.READY,.badge.COMPLETED{background:#e8f8ef;color:#13854b}.badge.DIAGNOSING,.badge.WAIT_APPROVAL{background:#fff3dd;color:#b46800}.badge.RECEIVED{background:#eeeafd;color:#6746c4}.money{font-variant-numeric:tabular-nums;font-weight:700}.link{color:#1677ff;cursor:pointer;font-weight:650}.modal{position:fixed;inset:0;background:#0c20355c;display:grid;place-items:center;z-index:10;padding:25px}.dialog{width:min(760px,96vw);max-height:90vh;overflow:auto;background:white;border-radius:15px;padding:25px;box-shadow:0 24px 80px #00152970}.dialog.wide{width:min(1020px,96vw)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dialog-head h2{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid .full{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.detail-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--line)}.timeline{display:flex;gap:0;margin:20px 0;overflow:auto}.step{min-width:120px;position:relative;text-align:center;color:#8a98aa;font-size:13px}.step:before{content:"";display:block;width:18px;height:18px;border-radius:50%;background:#d9e2ec;margin:0 auto 8px}.step.done{color:#13854b}.step.done:before{background:#22aa62}.step.active{color:#176bd0;font-weight:700}.step.active:before{background:#1677ff}.detail-grid{display:grid;grid-template-columns:1fr 330px;gap:16px}.info-list{display:grid;grid-template-columns:120px 1fr;gap:12px}.info-list dt{color:var(--muted)}.info-list dd{margin:0}.history{border-left:2px solid #dbe5ef;margin-left:8px;padding-left:18px}.history p{margin:0 0 15px}.history small{color:var(--muted)}.low{color:var(--red);font-weight:700}.toast{position:fixed;right:28px;bottom:28px;background:#15324d;color:white;padding:13px 18px;border-radius:9px;z-index:20;box-shadow:0 8px 30px #001a}.empty{text-align:center;color:var(--muted);padding:45px}.mobile-menu{display:none}@media(max-width:950px){.shell{grid-template-columns:1fr}.side{display:none}.main{grid-column:1}.cards{grid-template-columns:repeat(2,1fr)}.grid2,.detail-grid{grid-template-columns:1fr}.top{padding:0 16px}.content{padding:20px 15px}.mobile-menu{display:block}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}@media(max-width:560px){.cards{grid-template-columns:1fr}.top .search{display:none}}
