:root{--bg: #f7f4ec;--surface: #fffdf8;--surface-2: #fbf7ec;--ink: #2b2620;--ink-2: #4a4438;--muted: #8a8377;--line: #e5dfd0;--line-soft: #f1ecdf;--red: #c0503a;--red-soft: #fdece7;--gold: #8a5e12;--gold-soft: #fff7de;--green: #2e7d52;--green-soft: #e9f6ee;--blue: #5a6b82;--blue-soft: #edf1f7;--side-bg: #1b2331;--side-ink: #e7ecf4;--side-gold: #ffce4a;--radius: 12px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(40, 32, 12, .04), 0 8px 22px rgba(40, 32, 12, .06);--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-song: "Songti SC", "STSong", "SimSun", serif;--mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--red);text-decoration:none}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#d8d1c4;border-radius:6px}::-webkit-scrollbar-track{background:transparent}.shell{display:flex;min-height:100vh}.sidebar{width:212px;flex:0 0 212px;border-right:1px solid #131a26;background:var(--side-bg);color:var(--side-ink);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:18px 12px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,#2a3444,#1b2331);border:1px solid #3a4557;color:var(--side-gold);display:grid;place-items:center;font-family:var(--font-song);font-weight:700;font-size:15px;letter-spacing:1px}.brand-text b{display:block;font-size:14.5px;letter-spacing:3px;font-family:var(--font-song);color:#f2f5fa}.brand-text span{font-size:8.5px;letter-spacing:1.5px;opacity:.4}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:8px;color:var(--side-ink);font-size:13px;letter-spacing:.5px;cursor:pointer;border:none;background:none;text-align:left;width:100%;opacity:.55;transition:background .15s,color .15s,opacity .15s}.nav-item:hover{background:#f5c44514;opacity:.85}.nav-item.active{background:#f5c44521;color:var(--side-gold);font-weight:600;opacity:1}.nav-item .ico{width:16px;text-align:center;font-family:var(--font-song);font-size:14px}.nav-badge{margin-left:auto;font-style:normal;font-size:10.5px;line-height:1;min-width:16px;padding:3px 5px;border-radius:9px;background:#c0392b;color:#fff;text-align:center;font-weight:600}.nav-foot{margin-top:auto;font-size:10px;opacity:.35;line-height:1.9;padding:10px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:12px 22px;background:#fffdf8e6;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}.topbar h1{font-size:16px;margin:0;font-weight:650;letter-spacing:.3px}.topbar .spacer{flex:1}.page{padding:22px 22px 90px;max-width:1320px;width:100%;margin:0 auto}.tabbar{display:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card+.card{margin-top:16px}.card-hd{display:flex;align-items:center;gap:10px;padding:14px 16px 10px}.card-hd h2{font-size:14px;margin:0;font-weight:650;letter-spacing:.2px}.card-hd .sub{font-size:11.5px;color:var(--muted)}.card-hd .spacer{flex:1}.card-bd{padding:0 16px 16px}.card-bd.tight{padding:0 0 4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:13px;cursor:pointer;white-space:nowrap;transition:all .15s}.btn:hover{border-color:#d6cec0;background:var(--surface-2)}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{color:#5a3a05;border:1px solid #d9b04e;background:linear-gradient(180deg,#fffef6,#fce08a 60%,#f2c558);box-shadow:inset 0 1px #fff}.btn.primary:hover{filter:brightness(1.02)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:#eee9e1}.btn.danger{color:var(--red);border-color:#f0d3ce;background:#fff}.btn.danger:hover{background:var(--red-soft)}.btn.sm{height:28px;padding:0 10px;font-size:12px;border-radius:8px}.btn.block{width:100%}.input,.select{height:34px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.input:focus,.select:focus{border-color:#c9a89f;box-shadow:0 0 0 3px #c0392b14}.input::placeholder{color:#b3ac9f}select.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' stroke='%238a8578' stroke-width='1.5' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 11px center;padding-right:28px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;color:var(--muted);font-weight:500}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.nowrap{flex-wrap:nowrap}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.chip{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 11px;border-radius:20px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;color:var(--ink-2);cursor:pointer;white-space:nowrap}.chip:hover{border-color:#d6cec0}.chip.active{background:var(--gold-soft);border-color:#d9b04e;color:var(--gold);font-weight:600}.tag{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:6px;font-size:11px;font-weight:600;line-height:1;border:1px solid currentColor;background:color-mix(in srgb,currentColor 8%,transparent);white-space:nowrap}.tag.muted{opacity:.45;text-decoration:line-through}.dot{width:6px;height:6px;border-radius:50%;background:currentColor}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.kpi .lbl{font-size:11.5px;color:var(--muted);letter-spacing:.3px}.kpi .val{font-size:25px;font-weight:650;letter-spacing:-.5px;line-height:1.25;font-variant-numeric:tabular-nums}.kpi .val small{font-size:13px;font-weight:500;color:var(--muted);margin-left:2px}.kpi .foot{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--muted);margin-top:2px}.up{color:var(--red)}.down{color:var(--green)}.bar-row{display:grid;grid-template-columns:74px 1fr 54px;gap:10px;align-items:center;padding:4px 0;font-size:12.5px}.bar-track{height:7px;background:var(--line-soft);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#c0392b,#e07a5f);transition:width .4s ease}.bar-row .num{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.list-item:last-child{border-bottom:none}.rank-no{width:20px;text-align:center;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.rank-no.top{color:var(--gold);font-weight:700}.avatar{width:26px;height:26px;border-radius:8px;flex:0 0 26px;display:grid;place-items:center;font-size:12px;font-weight:600;background:#efe9df;color:#6b6355}.table-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:right;font-weight:500;color:var(--muted);font-size:11.5px;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface);position:sticky;top:0}table.tbl th:first-child,table.tbl td:first-child{text-align:left;padding-left:14px}table.tbl th.l,table.tbl td.l{text-align:left}table.tbl th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.tbl th.sortable:hover{color:var(--ink)}table.tbl th .arrow{font-size:9px;margin-left:2px}table.tbl td{padding:8px 10px;border-bottom:1px solid var(--line-soft);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.tbl tbody tr{cursor:pointer}table.tbl tbody tr:hover{background:#fbf9f5}table.tbl tbody tr:last-child td{border-bottom:none}.cell-name{display:flex;align-items:center;gap:8px;text-align:left}.cell-name b{font-weight:550}.empty{text-align:center;padding:46px 20px;color:var(--muted)}.empty .big{font-size:34px;opacity:.35;margin-bottom:6px}.empty p{margin:4px 0 14px;font-size:13px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1a166b;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;animation:fade .15s}.modal{background:var(--surface);border-radius:16px;box-shadow:0 20px 60px #0003;width:100%;max-width:440px;max-height:88vh;overflow:auto;animation:pop .18s ease-out}.modal-hd{display:flex;align-items:center;padding:16px 18px 8px}.modal-hd h3{margin:0;font-size:15px}.modal-bd{padding:8px 18px 4px}.modal-ft{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.toast-wrap{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{padding:9px 16px;border-radius:10px;font-size:13px;background:#2a2723;color:#fff;box-shadow:0 8px 24px #0000002e;animation:pop .18s ease-out;max-width:80vw}.toast.error{background:#a62f22}.toast.success{background:#2c6e4f}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.hr{height:1px;background:var(--line-soft);margin:12px 0}.scroll-y{max-height:320px;overflow-y:auto}.switch{position:relative;width:42px;height:24px;flex:0 0 42px}.switch input{display:none}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;background:#d9d2c6;border-radius:20px;cursor:pointer;transition:.2s}.switch span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px #0003}.switch input:checked+span{background:var(--red)}.switch input:checked+span:after{transform:translate(18px)}.dropzone{border:1.5px dashed #d8d0c2;border-radius:var(--radius);padding:26px 18px;text-align:center;cursor:pointer;background:var(--surface-2);transition:.2s}.dropzone:hover,.dropzone.over{border-color:var(--red);background:var(--red-soft)}.dropzone .icon{font-size:26px;opacity:.5}.dropzone b{display:block;margin-top:4px;font-size:13.5px}.dropzone span{font-size:11.5px;color:var(--muted)}.member-cards{display:none}@media(max-width:980px){.sidebar{display:none}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3,.grid-2{grid-template-columns:1fr}.grid-2>.card+.card{margin-top:16px}.page{padding:14px 14px 92px}.topbar{padding:10px 14px;gap:8px}.topbar h1{font-size:15px;white-space:nowrap;flex-shrink:0}.topbar select{min-width:0!important;max-width:148px}.topbar .tag{display:none}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:50;background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;padding:4px 0;color:var(--muted);font-size:10.5px}.tabbar button .ico{font-size:17px;line-height:1.2}.tabbar button.active{color:var(--red);font-weight:600}@media(max-width:480px){.tabbar button span:not(.ico){display:none}.tabbar button .ico{font-size:21px}.tabbar button{padding:6px 0}}.table-wrap.desktop-table{display:none}.member-cards{display:block}.modal{max-width:100%;border-radius:16px}}@media(max-width:400px){.kpi .val{font-size:21px}}.label[data-v-1c0de435]{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend-hd[data-v-dde9936f]{display:flex;align-items:baseline;gap:6px;margin-bottom:2px;font-size:12.5px}.trend-svg[data-v-dde9936f]{width:100%;height:130px;display:block}.trend-ft[data-v-dde9936f]{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.tbl[data-v-356d6f43]{width:100%;border-collapse:collapse}.tbl th[data-v-356d6f43],.tbl td[data-v-356d6f43]{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:13px}.tbl th[data-v-356d6f43]{background:var(--surface-2);color:var(--gold);font-size:12px;letter-spacing:.5px;white-space:nowrap}.tbl tr:last-child td[data-v-356d6f43]{border-bottom:0}.tbl tr.stale td[data-v-356d6f43]{background:#fff9e8}.pill[data-v-356d6f43]{display:inline-block;padding:1px 8px;border-radius:9px;font-size:12px;background:var(--blue-soft);color:var(--blue);border:1px solid #dce3ed}.pill.ok[data-v-356d6f43]{background:var(--green-soft);color:var(--green);border-color:#c9e6d4}.pill.bad[data-v-356d6f43]{background:var(--red-soft);color:var(--red);border-color:#f2cfc6}.pill.gold[data-v-356d6f43]{background:#fff3d4;color:var(--gold);border-color:#e8d9a8}.pill.plain[data-v-356d6f43]{background:var(--blue-soft);color:var(--blue);border-color:#dce3ed}.mono[data-v-356d6f43]{font-family:var(--mono)}.small[data-v-356d6f43]{font-size:12px}.nowrap[data-v-356d6f43]{white-space:nowrap}.btn.xs[data-v-356d6f43]{padding:2px 8px;font-size:12px;height:auto}.tbl[data-v-c004c080]{width:100%;border-collapse:collapse}.tbl th[data-v-c004c080],.tbl td[data-v-c004c080]{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle;font-size:13px}.tbl th[data-v-c004c080]{background:var(--surface-2);color:var(--gold);font-size:12px;letter-spacing:.5px;white-space:nowrap}.tbl tr:last-child td[data-v-c004c080]{border-bottom:0}.pill[data-v-c004c080]{display:inline-block;padding:1px 8px;border-radius:9px;font-size:12px;background:var(--blue-soft);color:var(--blue);border:1px solid #dce3ed}.pill.ok[data-v-c004c080]{background:var(--green-soft);color:var(--green);border-color:#c9e6d4}.pill.bad[data-v-c004c080]{background:var(--red-soft);color:var(--red);border-color:#f2cfc6}.pill.gold[data-v-c004c080]{background:#fff3d4;color:var(--gold);border-color:#e8d9a8}.pill.plain[data-v-c004c080]{background:var(--blue-soft);color:var(--blue);border-color:#dce3ed}.mono[data-v-c004c080]{font-family:var(--mono)}.small[data-v-c004c080]{font-size:12px}.nowrap[data-v-c004c080]{white-space:nowrap}.btn.xs[data-v-c004c080]{padding:2px 8px;font-size:12px;height:auto}.who[data-v-c004c080]{display:flex;align-items:center;gap:8px}.ava[data-v-c004c080]{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none}.ava.txt[data-v-c004c080]{display:inline-flex;align-items:center;justify-content:center;background:#fff3d4;color:var(--gold);font-size:12px;border:1px solid #e8d9a8}.tabs[data-v-c004c080]{display:flex;gap:4px}.tab[data-v-c004c080]{border:1px solid var(--line-soft);background:var(--surface-2);color:var(--ink-2);border-radius:14px;padding:3px 11px;font-size:12px;cursor:pointer}.tab.on[data-v-c004c080]{background:#1b2331;color:#ffce4a;border-color:#1b2331}.tab em[data-v-c004c080]{font-style:normal;margin-left:4px;opacity:.85}.tbl[data-v-6450493e]{width:100%;border-collapse:collapse}.tbl th[data-v-6450493e],.tbl td[data-v-6450493e]{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle;font-size:13px}.tbl th[data-v-6450493e]{background:var(--surface-2);color:var(--gold);font-size:12px;letter-spacing:.5px;white-space:nowrap}.tbl tr:last-child td[data-v-6450493e]{border-bottom:0}.pill[data-v-6450493e]{display:inline-block;padding:1px 8px;border-radius:9px;font-size:12px;background:var(--blue-soft);color:var(--blue);border:1px solid #dce3ed}.pill.ok[data-v-6450493e]{background:var(--green-soft);color:var(--green);border-color:#c9e6d4}.pill.bad[data-v-6450493e]{background:var(--red-soft);color:var(--red);border-color:#f2cfc6}.pill.gold[data-v-6450493e]{background:#fff3d4;color:var(--gold);border-color:#e8d9a8}.pill.plain[data-v-6450493e]{background:var(--blue-soft);color:var(--blue);border-color:#dce3ed}.mono[data-v-6450493e]{font-family:var(--mono)}.small[data-v-6450493e]{font-size:12px}.nowrap[data-v-6450493e]{white-space:nowrap}.btn.xs[data-v-6450493e]{padding:2px 8px;font-size:12px;height:auto}.btn.xs.danger[data-v-6450493e]{color:var(--red);border-color:#f2cfc6}.avatar[data-v-fea99445]{width:28px;height:28px;border-radius:50%;object-fit:cover;display:inline-block}.avatar-empty[data-v-fea99445]{display:inline-flex;align-items:center;justify-content:center;background:#eee;color:#666;font-size:13px}.tabs[data-v-fea99445]{display:flex;gap:8px;margin-bottom:14px}.tab[data-v-fea99445]{border:1px solid var(--border, #ddd);background:transparent;padding:6px 14px;border-radius:8px;cursor:pointer}.tab.on[data-v-fea99445]{background:var(--accent, #4a8c5c);color:#fff;border-color:var(--accent, #4a8c5c)}.badge[data-v-fea99445]{margin-left:6px;background:#e74c3c;color:#fff;border-radius:8px;font-size:11px;padding:1px 6px}.tbl[data-v-fea99445]{width:100%;border-collapse:collapse}.tbl th[data-v-fea99445],.tbl td[data-v-fea99445]{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border, #eee);vertical-align:top}.pill[data-v-fea99445]{display:inline-block;padding:1px 8px;border-radius:9px;font-size:12px;background:#eee}.pill.ok[data-v-fea99445]{background:#e6f4ea;color:#1e7e34}.pill.bad[data-v-fea99445]{background:#fdecea;color:#b3261e}.pill.warn[data-v-fea99445]{background:#fef3e0;color:#a05a00}.pill.tiny[data-v-fea99445]{font-size:11px;padding:0 6px}.strong[data-v-fea99445]{font-weight:600}.nowrap[data-v-fea99445]{white-space:nowrap}.btn.xs[data-v-fea99445]{padding:2px 8px;font-size:12px}.btn.danger[data-v-fea99445]{color:#b3261e;border-color:#e5b4b0}.mono[data-v-fea99445]{font-family:ui-monospace,monospace;font-size:12px}.small[data-v-fea99445]{font-size:12px}.mcard[data-v-65886169]{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:9px;box-shadow:var(--shadow)}.mcard-metrics[data-v-65886169]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.mcard-metrics div[data-v-65886169]{display:flex;flex-direction:column}.mcard-metrics span[data-v-65886169]{font-size:10.5px;color:var(--muted)}.mcard-metrics b[data-v-65886169]{font-size:13px;font-variant-numeric:tabular-nums}.mcard-foot[data-v-65886169]{margin-top:6px;font-size:11px;color:var(--muted)}.detail-grid[data-v-65886169]{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 8px}.detail-grid div[data-v-65886169]{display:flex;flex-direction:column}.detail-grid span[data-v-65886169]{font-size:11px;color:var(--muted)}.detail-grid b[data-v-65886169]{font-size:13.5px;font-variant-numeric:tabular-nums}.tag-list[data-v-65886169]{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.tag-item[data-v-65886169]{display:flex;align-items:center;gap:8px;font-size:12.5px}@media(max-width:980px){.detail-grid[data-v-65886169]{grid-template-columns:repeat(2,1fr)}}.mcard[data-v-2d19cdd4]{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}.mcard-top[data-v-2d19cdd4]{display:flex;align-items:center;gap:8px;font-size:13.5px}.mcard-row[data-v-2d19cdd4]{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:5px}.mcard-row b[data-v-2d19cdd4]{color:var(--ink)}.btn.ghost[data-v-3f0dcc8d]{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:12.5px;text-decoration:none}.mcard[data-v-3f0dcc8d]{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}.mcard-top[data-v-3f0dcc8d]{display:flex;align-items:center;justify-content:space-between;font-size:13.5px}.mcard-row[data-v-3f0dcc8d]{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:5px}.mcard-row b[data-v-3f0dcc8d]{color:var(--ink)}.land-map[data-v-3f0dcc8d]{width:100%;height:auto;background:#f4f0e8;border:1px solid var(--line);border-radius:10px;display:block}.map-grid[data-v-3f0dcc8d]{fill:none;stroke:#ddd4c3;stroke-width:1;stroke-linejoin:round}.map-coord[data-v-3f0dcc8d]{font-size:9px;fill:#a89f8e;font-family:var(--mono, monospace)}.map-here[data-v-3f0dcc8d]{font-size:11.5px;fill:#8f4a35;font-weight:700;stroke:#ffffffe6;stroke-width:2.6;paint-order:stroke}.npc-note[data-v-3f0dcc8d]{display:inline-block;background:#fbe9e7;color:#a3402c;border:1px solid #f0cfc7;border-radius:6px;padding:1px 7px;font-size:12px}.npc-note.plain[data-v-3f0dcc8d]{background:#f5f1e9;color:#8a7f6b;border-color:#e6dfd0}.stat[data-v-3f0dcc8d]{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.stat i[data-v-3f0dcc8d]{width:7px;height:7px;border-radius:50%;background:#b9b2a4;flex:none}.stat.ok[data-v-3f0dcc8d]{color:#2b7d4b}.stat.ok i[data-v-3f0dcc8d]{background:#2e9e5b;box-shadow:0 0 0 3px #2e9e5b29}.stat.wait[data-v-3f0dcc8d]{color:#9a6a12}.stat.wait i[data-v-3f0dcc8d]{background:#d89423;box-shadow:0 0 0 3px #d8942329}.chip[disabled][data-v-3f0dcc8d]{opacity:.42;cursor:not-allowed;background:#f0ece4;border-color:#ddd6c8;color:#9c9384}.chip[disabled].active[data-v-3f0dcc8d]{background:#cfc7b7;border-color:#cfc7b7;color:#fff}.pill-health[data-v-3f0dcc8d]{display:inline-block;border-radius:6px;padding:1px 7px;font-size:12px;border:1px solid transparent}.pill-health.ok[data-v-3f0dcc8d]{background:#eaf5ea;color:#2f6b34;border-color:#cfe6cf}.pill-health.bad[data-v-3f0dcc8d]{background:#fdecea;color:#96281b;border-color:#f5c6c2}.map-num[data-v-3f0dcc8d]{fill:#fff;text-anchor:middle;font-weight:700;stroke:#00000073;stroke-width:2;paint-order:stroke;pointer-events:none}.map-label[data-v-3f0dcc8d]{font-size:10.5px;fill:#3d3830;font-weight:550}.map-hit[data-v-3f0dcc8d]{cursor:pointer}.map-badge-bg[data-v-3f0dcc8d]{fill:#ffffffe6;stroke:#4640348c;stroke-width:.6}.map-badge-t[data-v-3f0dcc8d]{text-anchor:middle;fill:#2f2a22;font-weight:700;pointer-events:none}.lg-badge[data-v-3f0dcc8d]{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;font-size:11px;font-weight:700;color:#fff;text-decoration:none;background:#8a6a3d}.map-legend[data-v-3f0dcc8d]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px}.lg-item[data-v-3f0dcc8d]{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--muted)}.lg-item i[data-v-3f0dcc8d]{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.2)}.warn-box[data-v-f1be28e5]{margin-top:10px;padding:8px 11px;border-radius:9px;background:var(--gold-soft);color:#7a5a0c;font-size:12px;line-height:1.7}.tag-row[data-v-c1ad27c4]{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--line-soft)}.tag-row[data-v-c1ad27c4]:last-child{border-bottom:none}.swatch[data-v-c1ad27c4]{width:10px;height:10px;border-radius:3px;flex:0 0 10px}.group-title[data-v-c1ad27c4]{font-size:12px;font-weight:650;letter-spacing:.3px}.rec-row[data-v-c1ad27c4]{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line-soft)}.rec-row[data-v-c1ad27c4]:last-child{border-bottom:none}.rec-note[data-v-c1ad27c4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.swatch-btn[data-v-c1ad27c4]{width:22px;height:22px;border-radius:6px;border:2px solid transparent;cursor:pointer}.swatch-btn.on[data-v-c1ad27c4]{border-color:var(--ink)}.color-input[data-v-c1ad27c4]{width:30px;height:24px;border:1px solid var(--line);border-radius:6px;padding:0;background:none}.stat[data-v-8e227aa4]{display:flex;flex-direction:column}.stat span[data-v-8e227aa4]{font-size:11.5px;color:var(--muted)}.stat b[data-v-8e227aa4]{font-size:20px;font-variant-numeric:tabular-nums}.visit-bars[data-v-8e227aa4]{display:flex;align-items:flex-end;gap:10px;height:64px}.visit-bar[data-v-8e227aa4]{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.visit-bar i[data-v-8e227aa4]{display:block;width:100%;max-width:34px;background:var(--gold, #c9a24b);border-radius:4px 4px 0 0;opacity:.75}.visit-bar span[data-v-8e227aa4]{font-size:10px;color:var(--muted)}.visit-row[data-v-8e227aa4]{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--line-soft);font-size:12.5px}.visit-row[data-v-8e227aa4]:last-child{border-bottom:none}.acc-hourbars[data-v-8e227aa4]{display:flex;align-items:flex-end;gap:2px;height:40px}.acc-hour[data-v-8e227aa4]{flex:1;display:flex;align-items:flex-end}.acc-hour i[data-v-8e227aa4]{display:block;width:100%;max-width:22px;margin:0 auto;background:var(--green, #4a8c5c);border-radius:2px 2px 0 0;opacity:.7}.acc-ip-row[data-v-8e227aa4]{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid var(--line-soft);font-size:12.5px}.acc-ip-row[data-v-8e227aa4]:last-of-type{border-bottom:none}.ip-copy[data-v-8e227aa4]{cursor:copy;-webkit-user-select:text;user-select:text}.ip-copy[data-v-8e227aa4]:hover{color:var(--green);text-decoration:underline dotted}.acc-ip-row .btn.sm[data-v-8e227aa4]{height:22px;padding:0 8px;font-size:11px;border-radius:6px}.acc-table[data-v-8e227aa4]{width:100%;border-collapse:collapse;font-size:12px}.acc-table th[data-v-8e227aa4]{text-align:left;font-weight:500;color:var(--muted);padding:4px 6px;border-bottom:1px solid var(--line-soft)}.acc-table td[data-v-8e227aa4]{padding:3px 6px;border-bottom:1px solid var(--line-soft)}.acc-table tr:last-child td[data-v-8e227aa4]{border-bottom:none}.setting-row[data-v-5c23a7ca]{display:flex;align-items:center;gap:14px}.stat[data-v-5c23a7ca]{display:flex;flex-direction:column}.stat span[data-v-5c23a7ca]{font-size:11.5px;color:var(--muted)}.stat b[data-v-5c23a7ca]{font-size:20px;font-variant-numeric:tabular-nums}code[data-v-5c23a7ca]{background:#efece5;padding:1px 5px;border-radius:4px;font-size:11.5px}.user-row[data-v-89a87c71]{display:flex;align-items:center;gap:6px;padding:9px 0;border-bottom:1px solid var(--line-soft)}.user-row[data-v-89a87c71]:last-of-type{border-bottom:none}.role-note[data-v-89a87c71]{display:flex;flex-direction:column;gap:6px}.role-item[data-v-89a87c71]{display:flex;align-items:baseline;gap:8px}.role-badge[data-v-89a87c71]{font-size:10.5px}.menu-grid[data-v-89a87c71]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 10px;margin-top:6px}.menu-cell[data-v-89a87c71]{display:flex;align-items:center;gap:6px;font-size:12.5px;cursor:pointer}.login-wrap[data-v-76d299bc]{display:flex;justify-content:center;padding-top:6vh}.login-card[data-v-76d299bc]{width:100%;max-width:360px}
