#ms-root{--bg:#f6f7f5;--card:#fff;--ink:#12302b;--mut:#5f736f;--g:#0e7c66;--o:#e08a00;--line:#dfe5e2}#ms-root *{box-sizing:border-box}#ms-root{margin:0;background:var(--bg);color:var(--ink);font:14px/1.4 system-ui,Segoe UI,sans-serif}#ms-root header{padding:14px 20px;background:#0b3b36;color:#fff;display:flex;gap:16px;align-items:center;flex-wrap:wrap}#ms-root header h1{font-size:17px;margin:0;flex:1;min-width:260px}#ms-root header label{font-size:12px;opacity:.85}#ms-root select,#ms-root input{font:inherit}#ms-root select{padding:4px 6px;border-radius:6px;border:0}#ms-root .wrap{padding:14px 20px;display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}#ms-root .card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}#ms-root .kpi b{display:block;font-size:24px;color:var(--g)}#ms-root .kpi span{color:var(--mut);font-size:12px}#ms-root .span2{grid-column:span 2}#ms-root .span4{grid-column:span 4}#ms-root #map{height:520px;border-radius:8px}#ms-root .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}#ms-root .row label{font-size:12px;color:var(--mut)}#ms-root canvas{width:100%;height:260px;display:block}#ms-root table{width:100%;border-collapse:collapse;font-size:13px}#ms-root th,#ms-root td{padding:4px 6px;border-bottom:1px solid var(--line);text-align:right}#ms-root th:first-child,#ms-root td:first-child{text-align:left}#ms-root tr.u{cursor:pointer}#ms-root tr.u:hover{background:#eef5f2}#ms-root .note{font-size:12px;color:var(--mut);line-height:1.5}#ms-root .leg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}@media(max-width:900px){#ms-root .wrap{grid-template-columns:1fr 1fr}#ms-root .span2,#ms-root .span4{grid-column:span 2}}#ms-root #cbtn{background:#e08a00;color:#fff;border:0;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer}#ms-root #drawer{position:fixed;top:0;right:0;width:min(560px,100vw);height:100vh;background:#fff;z-index:2000;box-shadow:-4px 0 18px #0005;overflow:auto;display:none;color:#12302b}#ms-root #drawer.open{display:block}#ms-root #drawer .hd{position:sticky;top:0;background:#0b3b36;color:#fff;padding:12px 16px;display:flex;align-items:center;gap:10px;z-index:2}#ms-root #drawer .hd b{flex:1}#ms-root #drawer .hd button{background:transparent;border:1px solid #ffffff88;color:#fff;border-radius:6px;padding:4px 10px;cursor:pointer}#ms-root #drawer .sec{padding:14px 16px;border-bottom:1px solid #dfe5e2}#ms-root #drawer input,#ms-root #drawer select{width:100%;padding:9px;border:1px solid #c9d3cf;border-radius:8px;font:inherit;margin:4px 0}#ms-root #drawer .btn{background:#0e7c66;color:#fff;border:0;border-radius:8px;padding:10px 14px;font-weight:600;cursor:pointer;width:100%;margin-top:6px}#ms-root #drawer .btn.alt{background:#e08a00}#ms-root #drawer .grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}#ms-root #drawer .k{background:#f3f7f5;border-radius:8px;padding:8px 10px}#ms-root #drawer .k b{display:block;font-size:20px;color:#0e7c66}#ms-root #drawer .k span{font-size:11px;color:#5f736f}#ms-root #drawer .warn{background:#fff6e0;border:1px solid #f0d28a;border-radius:8px;padding:8px 10px;font-size:12px;margin:8px 0}#ms-root #drawer .lock{position:relative;padding:10px;border:1px dashed #b6c3be;border-radius:8px;background:#fafcfb}#ms-root #drawer .ph{display:inline-block;height:12px;background:#d5ddd9;border-radius:6px;margin:4px 6px 4px 0}#ms-root #drawer .post{background:#f3f7f5;border-radius:8px;padding:10px;margin:8px 0;font-size:13px;white-space:pre-wrap}#ms-root #drawer .post button{display:block;margin-top:6px;font-size:12px;border:1px solid #0e7c66;background:#fff;color:#0e7c66;border-radius:6px;padding:3px 8px;cursor:pointer}#ms-root #drawer .note{font-size:11px;color:#5f736f;line-height:1.5}#ms-root #drawer .proto{background:#e8f4ff;border:1px solid #9cc8f0;border-radius:8px;padding:8px 10px;font-size:12px;margin-bottom:8px}#ms-root #drawer label.chk{display:flex;gap:8px;font-size:12px;align-items:flex-start}#ms-root #drawer label.chk input{width:auto;margin-top:3px}#ms-root #drawer canvas{width:100%;height:130px;display:block}

#ms-root .msbtn{background:#0e7c66;color:#fff;border:0;border-radius:8px;padding:12px 18px;font-weight:600;cursor:pointer;margin:20px}
#ms-root #map{display:flex;align-items:center;justify-content:center;background:#eef3f1}
#ms-root header h2{font-size:17px;margin:0;flex:1;min-width:260px;color:#fff}
