*{box-sizing:border-box}body{margin:0;background:#f4f7fa;color:#193345;font:15px/1.7 Arial,"Microsoft YaHei",sans-serif}button,input,select{font:inherit}button,.button{cursor:pointer;background:#176f61;border:0;border-radius:6px;padding:9px 15px;color:white;text-decoration:none;display:inline-block}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,path:focus-visible{outline:3px solid #d8a43a;outline-offset:2px}button+button{margin-left:6px}input,select{display:block;width:100%;border:1px solid #c8d5de;border-radius:6px;padding:9px;background:white;color:#193345}label{display:block;margin:14px 0}form>button{margin-top:12px}h1{font-size:30px;line-height:1.4;margin:6px 0 10px}h2{font-size:19px;margin:0 0 18px}h3{font-size:16px}.muted,small{color:#6f8290;font-size:13px}small{display:block}.eyebrow{font-size:12px;color:#66868a;letter-spacing:2px}.login{max-width:480px;margin:10vh auto;padding:36px;background:white;border:1px solid #dfe8ed;border-radius:12px}.login form{margin:22px 0}aside{position:fixed;inset:0 auto 0 0;width:228px;background:#102e3b;color:#e9f1f5;display:flex;flex-direction:column}.brand{padding:32px 22px;font-size:22px;font-weight:bold;letter-spacing:1px}.brand small{color:#a8bdc5;font-weight:normal}nav{padding:8px 14px;display:grid;gap:8px}nav button{background:transparent;text-align:left;color:#c8d9e0;margin:0!important}nav button.active{background:#254d58;border-left:3px solid #72cbb3}.identity{margin-top:auto;padding:24px 18px;border-top:1px solid #34515f;overflow-wrap:anywhere}.identity small{color:#a8bdc5;margin-bottom:12px}.workspace{margin-left:228px;padding:0 32px 36px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid #dce5eb;color:#718491}.heading{padding:26px 0 12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stats section{padding:22px}.stats strong,.large{font-size:32px;line-height:1.8;display:block}.large small{display:inline}.stats p{color:#6f8290;margin:0}.columns{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}section{background:white;border:1px solid #dfe7ed;border-radius:10px;padding:24px;margin-bottom:20px;min-width:0}.table{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{background:#f4f7f9;color:#71828d;font-weight:normal;white-space:nowrap}td,th{padding:13px 10px;border-bottom:1px solid #e4ebf0}td{min-width:90px;overflow-wrap:anywhere}td button{font-size:12px;margin:3px;padding:6px 9px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.toolbar input{max-width:300px}.empty{padding:28px;color:#71838f;text-align:center}.message{background:#e3f1ec;border-left:4px solid #218676;padding:12px 16px;overflow-wrap:anywhere}.callout{background:#e6eff3;padding:18px;border-radius:6px;font-size:14px}.badge{background:#e6f4ed;color:#226e54;padding:4px 8px;border-radius:5px;white-space:nowrap}.warn{background:#fff1d7;color:#946b13}article{padding:18px 0;border-bottom:1px solid #e4ebef}article p{margin:6px 0}.task{display:flex;justify-content:space-between;align-items:center;gap:20px}.chart{width:100%;max-height:220px}.chart text{font-size:10px;fill:#617986}.map{width:100%;max-height:430px}.map path{cursor:pointer}.map path:hover{fill:#e8b94b}dialog{border:1px solid #d4e1e7;border-radius:12px;max-width:600px;width:calc(100% - 32px);max-height:90vh;padding:26px;color:#193345}dialog::backdrop{background:#102c3980}.modalhead{display:flex;align-items:center;justify-content:space-between;gap:15px}.modalhead h2{margin:0}#form-error{color:#aa3b28}#form-error:empty{display:none}@media(max-width:1100px){.columns{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.workspace{padding:0 22px 24px}}@media(max-width:700px){aside{position:static;width:100%}.brand{padding:16px 20px}nav{display:flex;overflow:auto;padding:8px 12px}nav button{white-space:nowrap}.identity{padding:12px 20px}.identity small{display:inline;margin-left:10px}.identity button{margin-left:10px}.workspace{margin:0;padding:0 14px 24px}section{padding:16px}.login{margin:5vh 16px;padding:24px}h1{font-size:26px}.stats{gap:10px}.stats section{padding:16px}.task{flex-wrap:wrap}}
