:root{--green:#22c55e;--green-dark:#16a34a;--mint:#dff8ea;--mint-2:#effaf4;--text:#17231c;--muted:#7a8a80;--line:#e8eee9;--bg:#eef5f2;--card:#fff;--orange:#ff8b28;--yellow:#facc15;--blue:#3292ff;--red:#ff5b5b;--shadow:0 10px 24px #155a321f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}html,body,#app{background:var(--bg);min-height:100%;color:var(--text);margin:0}button,input,textarea,select{font:inherit;border:0;outline:0}button{cursor:pointer}.app-shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.app-shell.login-shell{grid-template-columns:1fr}.login-shell .main{place-items:center;display:grid}.sidebar{border-right:1px solid var(--line);background:#fff;height:100vh;padding:22px 16px;position:sticky;top:0}.brand{align-items:center;gap:10px;margin-bottom:24px;font-size:20px;font-weight:800;display:flex}.brand-mark{background:linear-gradient(135deg, var(--green), #7ee2a8);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.nav-link{color:var(--muted);border-radius:12px;align-items:center;gap:10px;margin-bottom:6px;padding:12px 13px;text-decoration:none;display:flex}.nav-link.router-link-active{background:var(--mint-2);color:var(--green-dark);font-weight:700}.main{min-width:0;padding:24px}.page-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.page-title{letter-spacing:0;margin:0;font-size:26px}.page-subtitle{color:var(--muted);margin:6px 0 0}.grid{gap:16px;display:grid}.stats{grid-template-columns:repeat(5,minmax(130px,1fr))}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:18px}.stat-value{color:var(--green-dark);font-size:28px;font-weight:800}.stat-label{color:var(--muted);margin-top:4px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.btn{background:var(--green);color:#fff;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-weight:700;display:inline-flex}.btn.secondary{background:var(--mint-2);color:var(--green-dark)}.btn.danger{background:var(--red)}.input,.textarea,.select{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:8px;padding:10px 12px}.textarea{resize:vertical;min-height:86px}.form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form .wide{grid-column:1/-1}.field-label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:auto}.table{border-collapse:collapse;width:100%;min-width:860px}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px}.table th{color:var(--muted);background:#f7fbf8;font-size:13px}.cover{object-fit:cover;background:var(--mint-2);border-radius:6px;width:72px;height:52px}.tag{background:var(--mint-2);color:var(--green-dark);border-radius:999px;align-items:center;padding:4px 8px;font-size:12px;font-weight:700;display:inline-flex}.map-preview{border:1px solid var(--line);background:#dbeee5;border-radius:8px;height:360px;position:relative;overflow:hidden}.tile-grid{background-image:linear-gradient(90deg,#22c55e26 1px,#0000 1px),linear-gradient(#22c55e26 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:16px}.tile-layer{background:#3292ff6b;border:2px solid #16a34acc;position:absolute;inset:42px 80px;transform:rotate(-8deg)}.point-dot{width:18px;height:18px;box-shadow:var(--shadow);background:#22c5b5;border:3px solid #fff;border-radius:999px;position:absolute}@media (width<=960px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:100;border-right:0;border-bottom:1px solid var(--line);align-items:center;gap:6px;height:auto;padding:10px 12px;display:flex;position:sticky;top:0;overflow-x:auto}.brand{flex:none;margin:0 8px 0 0;font-size:16px}.brand-mark{width:30px;height:30px}.nav-link{white-space:nowrap;flex:none;margin:0;padding:9px 11px}.main{padding:18px}.page-head{align-items:flex-start;gap:12px}.page-head .btn{white-space:nowrap;flex:none}.stats,.form{grid-template-columns:1fr}}.rich-editor{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.editor-toolbar{border-bottom:1px solid var(--line);background:#f7faf9;align-items:center;gap:4px;min-height:44px;padding:6px 8px;display:flex}.editor-toolbar button{color:#44514d;border-radius:6px;place-items:center;width:32px;height:32px;display:grid}.editor-toolbar button:hover,.editor-toolbar button.active{color:var(--green-dark);background:#d8f5ea}.editor-toolbar button:disabled{opacity:.35;cursor:not-allowed}.toolbar-spacer{flex:1}.editor-body{color:#27322f;outline:none;min-height:260px;padding:16px;line-height:1.75}.editor-body h2{margin:18px 0 8px;font-size:22px}.editor-body p{margin:8px 0}.editor-body img{border-radius:6px;max-width:100%;height:auto}.editor-body ul,.editor-body ol{padding-left:24px}.visually-hidden{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.tabs[data-v-0c83eee3]{border-bottom:1px solid var(--line);gap:4px;margin:0 0 18px;display:flex}.tabs button[data-v-0c83eee3]{color:#68736f;border-bottom:2px solid #0000;padding:10px 18px;font-weight:700}.tabs button.active[data-v-0c83eee3]{color:var(--green-dark);border-bottom-color:var(--green)}.editor-card[data-v-0c83eee3]{margin-bottom:18px}.editor-card h2[data-v-0c83eee3]{margin:0;font-size:18px}.icon-close[data-v-0c83eee3],.icon-btn[data-v-0c83eee3]{color:#52605b;border-radius:7px;place-items:center;width:36px;height:36px;display:inline-grid}.icon-close[data-v-0c83eee3]:hover,.icon-btn[data-v-0c83eee3]:hover{background:var(--mint-2);color:var(--green-dark)}.danger-text[data-v-0c83eee3]{color:var(--red)}.actions[data-v-0c83eee3]{margin:16px 0 0}.filter-toolbar .select[data-v-0c83eee3]{width:150px}.filter-toolbar .input[data-v-0c83eee3]{width:min(380px,100%)}.textarea.compact[data-v-0c83eee3]{min-height:82px}.muted[data-v-0c83eee3]{color:#7c8783;max-width:420px;margin-top:5px;font-size:13px;line-height:1.5}.cover-wrap[data-v-0c83eee3]{width:fit-content;position:relative}.image-count[data-v-0c83eee3]{color:#fff;background:#18221eb8;border-radius:4px;padding:2px 5px;font-size:11px;font-weight:700;position:absolute;bottom:4px;right:4px}.post-tags[data-v-0c83eee3]{flex-wrap:wrap;gap:5px;margin-top:7px;display:flex}.post-tags span[data-v-0c83eee3]{background:var(--mint-2);color:var(--green-dark);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.row-actions[data-v-0c83eee3]{white-space:nowrap}.gallery-uploader[data-v-881ecffd]{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;display:grid}.gallery-item[data-v-881ecffd],.gallery-add[data-v-881ecffd]{aspect-ratio:4/3;border:1px solid var(--line);background:#f5f8f6;border-radius:8px;position:relative;overflow:hidden}.gallery-item img[data-v-881ecffd]{object-fit:cover;width:100%;height:100%}.cover-badge[data-v-881ecffd]{background:var(--green);color:#fff;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;top:6px;left:6px}.gallery-actions[data-v-881ecffd]{background:#141d1ab8;justify-content:center;gap:4px;padding:5px;display:flex;position:absolute;inset:auto 0 0}.gallery-actions button[data-v-881ecffd]{color:#37443f;background:#fffffff0;border-radius:5px;place-items:center;width:27px;height:27px;display:grid}.gallery-actions button[data-v-881ecffd]:disabled{opacity:.35}.gallery-add[data-v-881ecffd]{color:var(--green-dark);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;display:flex}.gallery-add small[data-v-881ecffd]{color:var(--muted)}.gallery-add input[data-v-881ecffd]{opacity:0;cursor:pointer;position:absolute;inset:0}.gallery-add.disabled[data-v-881ecffd]{opacity:.55;cursor:wait}.overlay-layout[data-v-ff0056a1]{grid-template-columns:220px minmax(420px,1fr) 320px;align-items:start;gap:16px;display:grid}.layer-panel[data-v-ff0056a1]{gap:8px;display:grid}.layer-item[data-v-ff0056a1]{border:1px solid var(--line);width:100%;color:var(--text);text-align:left;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.layer-item.active[data-v-ff0056a1]{border-color:var(--green);background:var(--mint-2);color:var(--green-dark);font-weight:700}.layer-item small[data-v-ff0056a1]{color:var(--muted)}.editor-panel[data-v-ff0056a1]{min-width:0}.upload-btn[data-v-ff0056a1]{position:relative;overflow:hidden}.upload-btn input[data-v-ff0056a1]{opacity:0;cursor:pointer;position:absolute;inset:0}.save-status[data-v-ff0056a1]{color:var(--green-dark);font-size:13px;font-weight:700}.save-status.error[data-v-ff0056a1]{color:var(--red)}.overlay-editor-wrap[data-v-ff0056a1]{border:1px solid var(--line);background:#d9e7df;border-radius:8px;height:560px;position:relative;overflow:hidden}.overlay-editor[data-v-ff0056a1]{position:absolute;inset:0}.overlay-selection-frame[data-v-ff0056a1]{z-index:24;box-sizing:border-box;pointer-events:none;border:2px solid #127d5bf2;position:absolute}.overlay-resize-handle[data-v-ff0056a1]{z-index:26;touch-action:none;-webkit-user-select:none;user-select:none;background:#127d5b;border:2px solid #fff;border-radius:5px;width:22px;height:22px;padding:0;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #14392c57}.overlay-resize-handle[data-v-ff0056a1]:hover,.overlay-resize-handle.active[data-v-ff0056a1]{background:#0a9b6b}.overlay-resize-handle[data-v-ff0056a1]:focus-visible{outline-offset:2px;outline:3px solid #fffffff0}.overlay-resize-handle.corner-north-west[data-v-ff0056a1],.overlay-resize-handle.corner-south-east[data-v-ff0056a1]{cursor:nwse-resize}.overlay-resize-handle.corner-north-east[data-v-ff0056a1],.overlay-resize-handle.corner-south-west[data-v-ff0056a1]{cursor:nesw-resize}.overlay-move-handle[data-v-ff0056a1]{z-index:25;color:#fff;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#127d5beb;border:2px solid #fff;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 14px #14392c52}.overlay-move-handle[data-v-ff0056a1]:hover{background:#0f9f70}.overlay-move-handle.active[data-v-ff0056a1]{cursor:grabbing;background:#08704f;box-shadow:0 2px 8px #14392c6b}.overlay-move-handle[data-v-ff0056a1]:focus-visible{outline-offset:2px;outline:3px solid #fffffff0}.map-message[data-v-ff0056a1],.empty-editor[data-v-ff0056a1]{z-index:30;color:var(--muted);background:#ffffffd1;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.amap-credit[data-v-ff0056a1]{z-index:31;color:var(--muted);background:#ffffffd6;border-radius:4px;padding:3px 6px;font-size:11px;position:absolute;bottom:8px;right:8px}.form.single[data-v-ff0056a1]{grid-template-columns:1fr}.field-block[data-v-ff0056a1]{gap:6px;display:grid}.panel-title[data-v-ff0056a1]{margin:18px 0 12px;font-size:16px}.point-form[data-v-ff0056a1]{border-top:1px solid var(--line);margin-top:18px;padding-top:2px}.point-actions[data-v-ff0056a1]{margin-top:12px}@media (width<=1180px){.overlay-layout[data-v-ff0056a1]{grid-template-columns:1fr}.overlay-editor-wrap[data-v-ff0056a1]{height:460px}}.point-layout[data-v-1212ca2b]{grid-template-columns:minmax(420px,1fr) 340px;align-items:start;gap:16px;display:grid}.point-map-card[data-v-1212ca2b]{min-width:0}.layer-select[data-v-1212ca2b]{min-width:260px}.hint[data-v-1212ca2b]{color:var(--muted);font-weight:700}.place-search[data-v-1212ca2b]{flex:1;gap:8px;min-width:280px;display:flex}.place-search .input[data-v-1212ca2b]{min-width:0}.point-map-wrap[data-v-1212ca2b]{border:1px solid var(--line);background:#d9e7df;border-radius:8px;height:560px;position:relative;overflow:hidden}.point-map[data-v-1212ca2b]{position:absolute;inset:0}.fallback-overlay-frame[data-v-1212ca2b]{z-index:10;position:absolute}.fallback-overlay-image[data-v-1212ca2b]{object-fit:fill;width:100%;height:100%;display:block}.fallback-existing-marker[data-v-1212ca2b],.fallback-draft-marker[data-v-1212ca2b]{width:14px;height:14px;box-shadow:var(--shadow);border:2px solid #fff;border-radius:999px;position:absolute;transform:translate(-50%,-50%)}.fallback-existing-marker[data-v-1212ca2b]{background:#25c7b7}.fallback-draft-marker[data-v-1212ca2b]{background:var(--orange);width:18px;height:18px}.point-hit-layer[data-v-1212ca2b]{z-index:20;cursor:crosshair;position:absolute;inset:0}.map-warning[data-v-1212ca2b]{z-index:21;max-width:calc(100% - 20px);color:var(--muted);pointer-events:none;background:#ffffffeb;border-radius:6px;padding:7px 10px;font-size:12px;font-weight:700;position:absolute;top:10px;left:10px}.map-message[data-v-1212ca2b],.empty-map[data-v-1212ca2b]{z-index:30;color:var(--muted);background:#ffffffd1;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.amap-credit[data-v-1212ca2b]{z-index:31;color:var(--muted);background:#ffffffd6;border-radius:4px;padding:3px 6px;font-size:11px;position:absolute;bottom:8px;right:8px}.form.single[data-v-1212ca2b]{grid-template-columns:1fr}.field-block[data-v-1212ca2b]{gap:6px;display:grid}.point-actions[data-v-1212ca2b]{margin-top:14px}.list-filter[data-v-1212ca2b]{margin-top:16px}.amap-point-marker{width:18px;height:18px;box-shadow:var(--shadow);background:#25c7b7;border:3px solid #fff;border-radius:999px}.amap-point-label{color:#fff;white-space:nowrap;background:#17231cdb;border-radius:999px;padding:3px 7px;font-size:12px;display:inline-flex}.amap-draft-marker{background:var(--orange);width:20px;height:20px;box-shadow:var(--shadow);border:3px solid #fff;border-radius:999px}@media (width<=1080px){.point-layout[data-v-1212ca2b]{grid-template-columns:1fr}.point-map-wrap[data-v-1212ca2b]{height:460px}}.filter-toolbar .select[data-v-bbc9019b]{width:150px}.filter-toolbar .input[data-v-bbc9019b]{width:min(360px,100%)}.review-image[data-v-bbc9019b]{object-fit:cover;border-radius:8px;width:min(360px,100%);max-height:280px}.panel-heading[data-v-962b2693]{color:var(--green-dark);justify-content:space-between;display:flex}.panel-heading h2[data-v-962b2693]{color:var(--text);margin:0;font-size:18px}.panel-heading p[data-v-962b2693]{color:var(--muted);margin:5px 0 16px;font-size:13px}.category-list[data-v-962b2693]{border-top:1px solid var(--line);margin-bottom:16px}.category-row[data-v-962b2693]{border-bottom:1px solid var(--line);grid-template-columns:28px minmax(0,1fr) auto 34px 34px;align-items:center;gap:9px;min-height:52px;display:grid}.category-order[data-v-962b2693]{color:var(--muted);text-align:center;font-weight:700}.category-copy[data-v-962b2693]{min-width:0;display:grid}.category-copy span[data-v-962b2693]{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.category-form[data-v-962b2693]{grid-template-columns:repeat(2,minmax(0,1fr))}.check-row[data-v-962b2693]{align-self:end;align-items:center;gap:8px;min-height:40px;font-size:13px;display:flex}.icon-btn[data-v-962b2693]{color:#52605b;border-radius:7px;place-items:center;width:34px;height:34px;display:grid}.icon-btn[data-v-962b2693]:hover{background:var(--mint-2);color:var(--green-dark)}.danger-text[data-v-962b2693]{color:var(--red)}.panel-action[data-v-962b2693]{margin:14px 0 0}.empty-line[data-v-962b2693]{color:var(--muted);text-align:center;padding:16px}@media (width<=720px){.category-form[data-v-962b2693]{grid-template-columns:1fr}}.panel-heading[data-v-161631aa]{color:var(--green-dark);justify-content:space-between;gap:16px;display:flex}.panel-heading h2[data-v-161631aa]{color:var(--text);margin:0;font-size:18px}.panel-heading p[data-v-161631aa]{color:var(--muted);margin:5px 0 16px;font-size:13px}.compact-form[data-v-161631aa]{grid-template-columns:1fr 1fr}.panel-action[data-v-161631aa]{margin-top:14px}@media (width<=720px){.compact-form[data-v-161631aa]{grid-template-columns:1fr}}.panel-heading[data-v-cc667fa3]{color:var(--green-dark);justify-content:space-between;display:flex}.panel-heading h2[data-v-cc667fa3]{color:var(--text);margin:0;font-size:18px}.panel-heading p[data-v-cc667fa3]{color:var(--muted);margin:5px 0 16px;font-size:13px}.shop-form[data-v-cc667fa3]{grid-template-columns:repeat(3,minmax(0,1fr))}.upload-row[data-v-cc667fa3]{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.actions[data-v-cc667fa3]{margin:16px 0 0}@media (width<=900px){.shop-form[data-v-cc667fa3]{grid-template-columns:1fr 1fr}}@media (width<=620px){.shop-form[data-v-cc667fa3],.upload-row[data-v-cc667fa3]{grid-template-columns:1fr}}.shop-table[data-v-e1ba43b3]{margin-top:16px}.rank-cover[data-v-e1ba43b3]{width:82px;height:70px}.muted[data-v-e1ba43b3]{color:var(--muted);margin-top:5px;font-size:12px}.text-limit[data-v-e1ba43b3]{max-width:300px}.row-actions[data-v-e1ba43b3]{white-space:nowrap}.icon-btn[data-v-e1ba43b3]{color:#52605b;border-radius:7px;place-items:center;width:34px;height:34px;display:inline-grid}.icon-btn[data-v-e1ba43b3]:hover{background:var(--mint-2);color:var(--green-dark)}.danger-text[data-v-e1ba43b3]{color:var(--red)}.empty-cell[data-v-e1ba43b3]{color:var(--muted);text-align:center;padding:32px}.config-grid[data-v-48e798b1]{grid-template-columns:minmax(300px,.8fr) minmax(480px,1.2fr);align-items:start;gap:16px;display:grid}.shop-editor[data-v-48e798b1]{margin-top:16px}@media (width<=1100px){.config-grid[data-v-48e798b1]{grid-template-columns:1fr}}
