:root{--nav:#101c35;--nav2:#182745;--primary:#1769e0;--primary-soft:#eaf2ff;--bg:#f4f7fb;--card:#fff;--text:#17233b;--muted:#6d7890;--line:#e3e9f1;--ok:#12805c;--warn:#b66b06;--danger:#c93d4b;--shadow:0 8px 28px rgba(23,35,59,.08)}*{box-sizing:border-box}body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app{min-height:100vh;display:grid;grid-template-columns:236px 1fr}aside{position:fixed;width:236px;height:100vh;background:linear-gradient(180deg,var(--nav),#0d172c);color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:10}.side-brand,.auth-brand{display:flex;gap:12px;align-items:center}.logo{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#2b82f6,#50b8ff);color:#fff;font-weight:800;letter-spacing:-1px;box-shadow:0 6px 16px #0c65d955}.side-brand strong{display:block;font-size:16px}.side-brand small,.side-footer small{display:block;color:#91a0ba;margin-top:1px}nav{margin-top:38px;display:grid;gap:6px}nav button{border:0;color:#aeb9cc;background:transparent;text-align:left;padding:11px 14px;border-radius:8px;display:flex;gap:12px;align-items:center}nav button span{font-size:18px;width:20px;text-align:center}nav button:hover,nav button.active{background:#ffffff14;color:#fff}.side-footer{margin-top:auto;border-top:1px solid #ffffff16;padding:18px 4px 0;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center}.user-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#236fd5}.side-footer button{background:none;border:0;color:#9faec4;font-size:20px}main{grid-column:2;min-width:0}header{height:96px;background:#fff;border-bottom:1px solid var(--line);padding:20px 30px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:5}header h1{margin:1px 0 0;font-size:24px}.eyebrow{margin:0;color:var(--primary);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:18px}.status-dot{color:var(--ok);font-size:12px}.status-dot:before{content:"";display:inline-block;width:7px;height:7px;background:#21b27d;border-radius:50%;margin-right:7px;box-shadow:0 0 0 3px #21b27d18}.primary,.secondary,.danger-btn{border:0;border-radius:8px;padding:9px 16px;font-weight:600}.primary{background:var(--primary);color:#fff;box-shadow:0 5px 12px #1769e033}.secondary{color:var(--text);background:#fff;border:1px solid var(--line)}.danger-btn{color:var(--danger);background:#fff0f1}.full{width:100%;padding:12px}.icon-btn{border:0;background:transparent;font-size:22px;color:var(--muted)}#menuBtn{display:none}#content{padding:26px 30px 50px}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:14px}.metric{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:17px;box-shadow:0 2px 7px #17233b08}.metric-top{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.metric-icon{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:16px}.metric strong{font-size:27px;display:block;margin-top:11px}.grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 2px 8px #17233b08}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.card h3{margin:0;font-size:16px}.muted{color:var(--muted)}.bars{display:grid;gap:14px}.bar-row{display:grid;grid-template-columns:110px 1fr 35px;gap:10px;align-items:center}.bar{height:8px;background:#eef2f7;border-radius:8px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#327ee3,#64b5ff);border-radius:8px}.activity{display:grid}.activity-row{display:grid;grid-template-columns:10px 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid #eef1f5}.activity-row:last-child{border:0}.dot{width:7px;height:7px;border-radius:50%;background:var(--primary);margin-top:7px}.activity-row small{color:var(--muted)}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.toolbar .search{min-width:260px;flex:1;max-width:420px}.search,input,select,textarea{border:1px solid #d8e0ea;border-radius:8px;background:#fff;padding:9px 11px;color:var(--text);outline:none}.search:focus,input:focus,select:focus,textarea:focus{border-color:#5b94e4;box-shadow:0 0 0 3px #1769e012}.toolbar select{min-width:135px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px;background:#fff}table{width:100%;border-collapse:collapse;min-width:800px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #edf1f5;white-space:nowrap}th{background:#f8fafc;color:#68758c;font-size:12px;font-weight:600}tbody tr:hover{background:#f8fbff}td strong{font-weight:600}.tag{display:inline-block;padding:3px 9px;border-radius:20px;font-size:12px;background:#eef2f7;color:#536078}.tag.在用,.tag.正常,.tag.已完成{background:#e7f7f1;color:#087553}.tag.库存,.tag.进行中{background:#eaf2ff;color:#1769e0}.tag.维修,.tag.位置差异,.tag.责任人差异{background:#fff3df;color:#a45c00}.tag.已报废,.tag.未找到,.tag.报废申请{background:#ffeaed;color:#bd3341}.link-btn{border:0;background:none;color:var(--primary);padding:4px 6px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.empty{padding:45px;text-align:center;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid label,.auth-card label{display:grid;gap:6px;color:#536078;font-size:12px;font-weight:600}.form-grid .wide{grid-column:1/-1}.form-grid textarea{min-height:75px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal{position:fixed;inset:0;background:#0e172999;display:grid;place-items:center;padding:25px;z-index:50}.modal-box{background:#fff;border-radius:14px;width:min(760px,100%);max-height:90vh;overflow:auto;box-shadow:0 24px 70px #0004}.modal-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;z-index:2}.modal-head h2{margin:0;font-size:19px}#modalBody{padding:22px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr 480px;gap:30px;align-items:center;padding:8vw;background:radial-gradient(circle at 20% 30%,#e8f2ff,transparent 40%),linear-gradient(135deg,#f7faff,#eaf1fa)}.auth-brand{align-self:center}.auth-brand .logo{width:58px;height:58px;font-size:21px}.auth-brand h1{font-size:34px;margin:0}.auth-brand p{color:var(--muted);font-size:16px}.auth-card{background:#fff;padding:38px;border-radius:16px;box-shadow:0 20px 60px #24426d1c;border:1px solid #e1e8f2}.auth-card h2{font-size:27px;margin:8px 0 4px}.auth-card label{margin-top:18px}.auth-card input{padding:12px}.auth-card button{margin-top:24px}.error{color:var(--danger);min-height:20px}.toast{position:fixed;right:25px;bottom:25px;background:#17233b;color:#fff;padding:12px 18px;border-radius:9px;z-index:100;box-shadow:var(--shadow)}.integration-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.integration-card{position:relative}.integration-logo{width:45px;height:45px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:800;margin-bottom:18px}.notice{border-left:3px solid var(--primary);background:#edf5ff;padding:12px 15px;border-radius:5px;margin-bottom:18px;color:#315984}.progress{height:8px;background:#e9eef5;border-radius:8px;overflow:hidden}.progress i{display:block;height:100%;background:var(--primary)}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(3,1fr)}.integration-grid{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}@media(max-width:760px){.app{display:block}aside{transform:translateX(-100%);transition:.2s}.app.menu-open aside{transform:none}.app main{margin:0}header{height:82px;padding:15px 17px}#menuBtn{display:block}.status-dot{display:none}#content{padding:18px 14px}.metric-grid{grid-template-columns:repeat(2,1fr)}.auth-shell{display:flex;flex-direction:column;justify-content:center;padding:24px}.auth-brand h1{font-size:24px}.auth-card{width:100%;padding:26px}.form-grid{grid-template-columns:1fr}.header-actions .primary{padding:8px 10px}.bar-row{grid-template-columns:90px 1fr 30px}}