*{box-sizing:border-box}body{margin:0;background:#f4f6fa;color:#18263c;font-family:Segoe UI,Arial,sans-serif;display:flex;height:100vh}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid #dce3ed;background:white;border-radius:8px;padding:9px 12px;color:#25374e}button:hover,.button:hover{background:#eef3ff}aside{width:330px;background:#fff;padding:26px 20px;display:flex;flex-direction:column;border-right:1px solid #dde3eb}.brand{display:flex;gap:10px;font-size:25px;color:#425be9;font-weight:700}.brand span{font-size:20px;color:#18263c}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#8a97ad;margin-top:5px}.intro{font-size:19px;margin:30px 0 20px;line-height:1.6}#stats{display:flex;gap:8px;margin-bottom:20px}#stats div{flex:1;background:#f4f6fb;padding:12px 8px;border-radius:10px}#stats strong{display:block;font-size:24px}#stats small{color:#738199}.toolbar{display:flex;gap:8px}.toolbar button{font-size:13px;flex:1;background:#455bea;color:white;border:0}#search{margin:18px 0 12px;width:100%;padding:12px;border:1px solid #dce3ed;border-radius:8px}.tabs{display:flex;border-bottom:1px solid #e5eaf2}.tabs button{flex:1;border:0;border-radius:0;font-size:12px;padding:12px 3px}.tabs .active{color:#455bea;border-bottom:2px solid #455bea}#list{overflow:auto;flex:1;padding-top:8px}.item{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #edf0f5;border-radius:0;padding:15px 8px}.item strong{display:block;font-size:14px}.item small{display:block;color:#7a889d;margin-top:6px;font-size:11px}footer{padding-top:18px;display:flex;gap:8px;flex-wrap:wrap}footer span{font-size:10px;color:#8a97ad;width:100%;margin-top:5px}main{flex:1;min-width:0;display:flex;flex-direction:column;padding:26px 30px;gap:20px}header{display:flex;align-items:center;justify-content:space-between}header small{letter-spacing:2px;color:#8490a5;font-size:10px}h1{font-size:27px;margin:6px 0 0}.badge{font-size:12px;color:#288875;background:#e7f5ee;padding:10px;border-radius:20px}.mapwrap{position:relative;flex:1;min-height:280px;border:1px solid #dbe3ed;border-radius:14px;overflow:hidden}#map{height:100%;background:#e8edf3}.legend{position:absolute;bottom:20px;left:20px;z-index:500;background:white;border-radius:8px;padding:12px;display:flex;gap:15px;font-size:11px;box-shadow:0 3px 12px #20324b18}#hint{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:500;background:#18263c;color:#fff;border-radius:8px;padding:12px;display:none;font-size:12px;width:max-content;max-width:90%}#detail{background:white;border:1px solid #e0e6ef;border-radius:12px;padding:20px;max-height:270px;overflow:auto}h2{font-size:18px;margin:0 0 10px}p{color:#758299;font-size:13px;line-height:1.7}.actions{display:flex;gap:8px;float:right}.danger{color:#c94343}.grid{display:flex;gap:25px;flex-wrap:wrap}.grid span{font-size:12px;color:#7c8798}.grid b{display:block;color:#273a52;margin-top:4px}dialog{border:0;border-radius:14px;padding:25px;width:460px;max-width:95vw;box-shadow:0 20px 80px #17243955}dialog::backdrop{background:#15213a66}.dialoghead{display:flex;justify-content:space-between;align-items:center}.dialoghead button{border:0;font-size:24px}label.field{display:block;margin:14px 0;font-size:12px;color:#63728a}.field input,.field select,.field textarea{display:block;width:100%;padding:10px;border:1px solid #d9e0eb;border-radius:7px;margin-top:5px;color:#18263c}.primary{background:#455bea;color:white;width:100%;border:0}#error{color:#c94343}#toast{position:fixed;bottom:25px;right:25px;z-index:2000;background:#18263c;color:white;padding:14px;border-radius:10px;display:none}table{width:100%;font-size:12px;border-collapse:collapse;margin-top:14px}td,th{text-align:left;padding:8px;border-bottom:1px solid #edf0f4}.fallback{position:relative;overflow:hidden;background-image:linear-gradient(#cbd5e144 1px,transparent 1px),linear-gradient(90deg,#cbd5e144 1px,transparent 1px)!important;background-size:35px 35px!important}.fallback svg{width:100%;height:100%}.offline{position:absolute;top:12px;left:12px;max-width:80%;background:white;padding:10px;border-radius:8px;font-size:11px}@media(max-width:800px){body{height:auto;display:block}aside{width:100%;padding:18px}#list{max-height:180px}.intro{display:none}#stats{margin-top:18px}main{padding:18px}.mapwrap{height:450px;flex:auto}.badge{display:none}}
