:root{font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;color:#233c43;background:#f3f6f6;font-synthesis:none;font-size:14px;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:#147369;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #d5e0df;background:#fff;color:#36534f;border-radius:7px;padding:8px 14px;white-space:nowrap}button:hover{background:#edf5f3}button:disabled{cursor:not-allowed;opacity:.5}button.primary{background:#15776b;color:#fff;border-color:#15776b}button.danger{color:#a74444}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #59ad9d;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #cbdad7;border-radius:7px;background:#fff;padding:9px;color:#243f3b}textarea{min-height:88px;resize:vertical}label{display:flex;flex-direction:column;gap:6px;font-weight:500;margin:12px 0}h1,h2,p{margin-top:0}h1{font-size:30px;letter-spacing:-.8px;line-height:1.3;margin:9px 0 12px}h2{font-size:18px;font-weight:650;margin-bottom:18px}small{display:block;color:#718580;font-size:12px;overflow-wrap:anywhere}.muted{color:#718580}.eyebrow{font-size:11px;letter-spacing:1.5px;color:#6d8881}.shell{display:flex;min-height:100vh}aside{width:226px;flex-shrink:0;background:#142f2c;color:#d6e4e0;position:fixed;inset:0 auto 0 0;padding:32px 20px;display:flex;flex-direction:column}.brand{font-size:21px;letter-spacing:2px;font-weight:700;color:inherit;display:block;margin-bottom:55px}.brand small{font-size:11px;letter-spacing:3px;padding-left:29px;margin-top:5px;color:#a5c4ba}aside nav{display:grid;gap:8px;margin-top:18px}aside nav a{padding:12px 18px;color:#b8ccc6;border-radius:7px}aside nav a.active{background:#285046;color:#effcf7;border-left:3px solid #72c2a4}.aside-footer{margin-top:auto;font-size:12px;color:#a4bbb3}.aside-footer button{display:block;margin-top:14px;background:transparent;color:#d8e9e2;border-color:#49645d}main{margin-left:226px;width:calc(100% - 226px);min-width:0}.topbar{height:65px;padding:20px 36px;background:#fff;border-bottom:1px solid #e0e8e5;display:flex;justify-content:space-between;font-size:12px}.topbar span{color:#799089}.content{padding:32px 36px 60px;max-width:1700px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px}.page-heading p{margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.panel{padding:24px;background:#fff;border:1px solid #dde7e3;border-radius:11px;margin-bottom:20px;min-width:0}.panel>header,.modal>header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.panel>header h2,.modal>header h2{margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metrics article{background:#fff;border:1px solid #dde7e3;padding:23px;border-radius:10px}.metrics strong{display:block;font-size:38px;font-weight:600;line-height:1.6}.metrics article:nth-child(4) strong{color:#ab4946}.metrics article:nth-child(5) strong{color:#bb792d}.safety-note{padding:13px 18px;background:#edf2e9;border:1px solid #dce4d4;border-radius:7px;color:#657454;font-size:13px;margin:20px 0}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.activity{display:flex;gap:12px;align-items:center;padding:16px 0;border-top:1px solid #edf1ef;color:#2b4941}.badge{display:inline-block;padding:3px 9px;border-radius:5px;font-size:12px;background:#edf2ee;color:#567168;overflow-wrap:anywhere}.badge.P0{background:#fbe9e8;color:#a74444}.badge.P1{background:#fff0dc;color:#a56a26}.badge.P2{background:#f8f4d9;color:#847424}.badge.NORMAL{background:#e1f3e8;color:#1a7a3a}.badge.待评估{background:#edf2ee;color:#567168}.empty{text-align:center;padding:46px 20px;color:#879b92}.table-panel{padding:0}.table-panel>header{padding:20px 22px 0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}th{font-weight:500;background:#f9fbfa;color:#70867d;white-space:nowrap}th,td{padding:15px 18px;border-bottom:1px solid #eaf0ec;vertical-align:top}td{min-width:100px;max-width:350px;overflow-wrap:anywhere}td:first-child{min-width:180px}td small{max-width:250px}tr:hover td{background:#fcfdfc}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:16px 22px}.pagination span{margin-right:auto;color:#70867d}.tabs{display:flex;gap:6px;border-bottom:1px solid #dce5df;margin-bottom:22px;overflow-x:auto}.tabs button{border:0;background:transparent;border-radius:0;padding:14px 20px}.tabs button.selected{border-bottom:3px solid #208371;color:#147369;font-weight:600}.device-grid,.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.device-grid article{padding:18px;border:1px solid #e1eae5;border-radius:8px}.device-grid p{margin:10px 0 0;color:#6c8178}.facts{grid-template-columns:repeat(3,1fr);margin:24px 0}.facts dt{color:#7c9188;font-size:12px}.facts dd{margin:5px 0 0;overflow-wrap:anywhere}.filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px}.filters label{min-width:140px;margin:0}.filters input{max-width:210px}.error,.notice{border-radius:7px;padding:13px 17px;overflow-wrap:anywhere}.error{color:#9c3838;background:#fce9e9}.notice{color:#23654f;background:#e4f2e9}.evidence{margin:0}.evidence>div{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:15px;padding:10px 0;border-bottom:1px solid #edf2ee}.evidence dt{color:#70867d;overflow-wrap:anywhere}.evidence dd{margin:0;min-width:0}.evidence-list{padding-left:20px;margin:0}.evidence-list li{padding:4px 0}.literal,.evidence a{white-space:pre-wrap;overflow-wrap:anywhere}details{margin-top:8px}summary{cursor:pointer;color:#15776b}.check{flex-direction:row;align-items:center}.check input{width:auto}.settings{max-width:750px}.modal-backdrop{position:fixed;inset:0;background:#102b267a;display:grid;place-items:center;padding:20px;z-index:10}.modal{background:#fff;border-radius:12px;padding:25px;width:min(620px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 80px #102b2640}.modal footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-story{padding:70px 12%;background:#173c34;color:#edf7ee;display:flex;flex-direction:column;justify-content:center}.login-story .brand{margin-bottom:70px}.login-story h1{font-size:clamp(40px,5vw,72px);line-height:1.3;letter-spacing:-2px}.login-story p{color:#b2cabc;max-width:400px}.login-story .safety-note{background:#244c40;border-color:#3d6252;margin-top:45px;color:#b1c8b7}.login-form{width:min(400px,85%);margin:auto;padding:30px 0}.login-form h2{font-size:27px;margin-top:13px}.login-form button{width:100%;margin-top:16px}@media(max-width:1100px){aside{width:180px;padding:28px 14px}main{margin-left:180px;width:calc(100% - 180px)}.content{padding:26px 22px}.metrics{gap:10px}.metrics article{padding:16px}.dashboard-grid{grid-template-columns:1fr}.device-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.shell{display:block}aside{position:static;width:100%;padding:16px}.brand{margin:0;font-size:18px}.brand small,aside>.eyebrow,.aside-footer{display:none}aside nav{display:flex;overflow:auto;gap:4px;margin-top:14px}aside nav a{padding:8px 12px;white-space:nowrap}main{width:100%;margin:0}.topbar{height:auto;padding:13px 18px}.topbar span{display:none}.content{padding:24px 15px}.page-heading{align-items:flex-start;flex-direction:column}h1{font-size:25px}.metrics{grid-template-columns:1fr 1fr}.metrics strong{font-size:30px}.panel{padding:18px}.table-panel{padding:0}.facts{grid-template-columns:1fr 1fr}.evidence>div{grid-template-columns:1fr;gap:3px}.login{grid-template-columns:1fr}.login-story{padding:35px}.login-story .brand{margin-bottom:30px}.login-story h1{font-size:40px}.login-story .safety-note{display:none}.login-form{margin:25px auto}.filters label{flex:1}.filters input{max-width:none}.tabs button{padding:12px}.form-grid{grid-template-columns:1fr}.pagination{flex-wrap:wrap}}dialog.modal{border:0;color:#233c43}dialog.modal::backdrop{background:#102b267a}@media(max-width:720px){.aside-footer{display:flex;gap:15px;align-items:center;margin-top:10px}.aside-footer button{margin-top:0;padding:4px 10px}}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:720px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
