.toast-container[data-v-a0b5c9b3]{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast[data-v-a0b5c9b3]{display:flex;align-items:center;gap:12px;min-width:300px;max-width:500px;padding:14px 16px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;pointer-events:auto;animation:slideInRight-a0b5c9b3 .3s ease-out}.toast-icon[data-v-a0b5c9b3]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.toast-content[data-v-a0b5c9b3]{flex:1;min-width:0}.toast-message[data-v-a0b5c9b3]{font-size:14px;line-height:1.5;color:#1e293b;word-break:break-word}.toast-close[data-v-a0b5c9b3]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;cursor:pointer;color:#94a3b8;transition:color .2s}.toast-close[data-v-a0b5c9b3]:hover{color:#64748b}.toast-success[data-v-a0b5c9b3]{border-left:4px solid #10b981}.toast-success .toast-icon[data-v-a0b5c9b3]{color:#10b981}.toast-error[data-v-a0b5c9b3]{border-left:4px solid #ef4444}.toast-error .toast-icon[data-v-a0b5c9b3]{color:#ef4444}.toast-warning[data-v-a0b5c9b3]{border-left:4px solid #f59e0b}.toast-warning .toast-icon[data-v-a0b5c9b3]{color:#f59e0b}.toast-info[data-v-a0b5c9b3]{border-left:4px solid #3b82f6}.toast-info .toast-icon[data-v-a0b5c9b3]{color:#3b82f6}@keyframes slideInRight-a0b5c9b3{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-enter-active[data-v-a0b5c9b3]{animation:slideInRight-a0b5c9b3 .3s ease-out}.toast-leave-active[data-v-a0b5c9b3]{animation:slideOutRight-a0b5c9b3 .3s ease-in}@keyframes slideOutRight-a0b5c9b3{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@media (max-width: 640px){.toast-container[data-v-a0b5c9b3]{top:10px;right:10px;left:10px}.toast[data-v-a0b5c9b3]{min-width:auto;max-width:100%}}.app{min-height:100vh}.refresh-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:refresh-spin .7s linear infinite;vertical-align:middle;margin-right:6px}@keyframes refresh-spin{to{transform:rotate(360deg)}}.app-layout[data-v-76f8d9c7]{display:flex;flex-direction:column;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;min-height:0;width:100%;overflow:hidden}.top-header[data-v-76f8d9c7]{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:60px;background:#fff;flex-shrink:0;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000a}.header-left[data-v-76f8d9c7]{display:flex;align-items:center;gap:16px}.menu-trigger-header[data-v-76f8d9c7]{display:none;width:40px;height:40px;border:none;background:#f1f5f9;color:#475569;font-size:18px;border-radius:8px;cursor:pointer;transition:background .2s}.menu-trigger-header[data-v-76f8d9c7]:hover{background:#e2e8f0}.system-name[data-v-76f8d9c7]{font-size:17px;font-weight:600;color:#0f172a;letter-spacing:.02em}.user-dropdown-wrap[data-v-76f8d9c7]{position:relative}.user-trigger[data-v-76f8d9c7]{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;background:#f8fafc;border:1px solid #e2e8f0;color:#334155;border-radius:10px;cursor:pointer;font-size:14px;transition:all .2s ease}.user-trigger[data-v-76f8d9c7]:hover{background:#f1f5f9;border-color:#cbd5e1}.user-trigger.open[data-v-76f8d9c7]{background:#f1f5f9;border-color:#94a3b8;box-shadow:0 0 0 2px #94a3b833}.user-avatar[data-v-76f8d9c7]{width:36px;height:36px;line-height:36px;text-align:center;background:linear-gradient(135deg,#0d9488 0%,#14b8a6 100%);color:#fff;border-radius:10px;font-weight:600;font-size:15px}.user-display-name[data-v-76f8d9c7]{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475569;font-weight:500}.user-chevron[data-v-76f8d9c7]{color:#94a3b8;transition:transform .2s}.user-trigger.open .user-chevron[data-v-76f8d9c7]{transform:rotate(180deg)}.dropdown-enter-active[data-v-76f8d9c7],.dropdown-leave-active[data-v-76f8d9c7]{transition:opacity .15s ease,transform .15s ease}.dropdown-enter-from[data-v-76f8d9c7],.dropdown-leave-to[data-v-76f8d9c7]{opacity:0;transform:translateY(-4px)}.user-dropdown[data-v-76f8d9c7]{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;background:#fff;color:#334155;border-radius:12px;box-shadow:0 10px 40px #0000001f,0 2px 10px #0000000f;padding:8px 0;z-index:1001;border:1px solid #e2e8f0}.user-dropdown button[data-v-76f8d9c7]{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;border:none;background:none;text-align:left;cursor:pointer;font-size:14px;color:#475569;transition:background .15s}.user-dropdown button[data-v-76f8d9c7]:hover{background:#f8fafc;color:#0f172a}.dd-icon[data-v-76f8d9c7]{font-size:14px;opacity:.8}.dd-divider[data-v-76f8d9c7]{height:1px;background:#e2e8f0;margin:6px 0}.dd-logout[data-v-76f8d9c7]:hover{color:#dc2626}.body-row[data-v-76f8d9c7]{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar-overlay[data-v-76f8d9c7]{display:none;position:fixed;inset:60px 0 0;background:rgba(0,0,0,.4);z-index:998}.sidebar[data-v-76f8d9c7]{width:220px;background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);color:#0f172a;flex-shrink:0;transition:width .2s,transform .3s ease;overflow:hidden;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;min-height:0;align-self:stretch}.app-layout.collapsed .sidebar[data-v-76f8d9c7]{width:48px}.sidebar-header[data-v-76f8d9c7]{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e8f0}.sidebar-header.collapsed[data-v-76f8d9c7]{padding:10px;justify-content:center}.sidebar-header span[data-v-76f8d9c7]{font-size:13px;font-weight:600;color:#64748b}.collapse-btn[data-v-76f8d9c7]{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569;padding:4px 8px;cursor:pointer;border-radius:6px;font-size:10px;transition:all .2s}.collapse-btn[data-v-76f8d9c7]:hover{background:#e2e8f0;color:#0f172a}.menu[data-v-76f8d9c7]{padding:10px 0;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.menu-group[data-v-76f8d9c7]{margin-bottom:2px}.group-title[data-v-76f8d9c7]{padding:10px 16px;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:13px;color:#334155;transition:all .2s}.group-title[data-v-76f8d9c7]:hover{background:#f1f5f9;color:#0f172a}.group-icon[data-v-76f8d9c7]{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.group-icon[data-v-76f8d9c7] svg{width:18px;height:18px}.group-text[data-v-76f8d9c7]{flex:1;white-space:nowrap;overflow:hidden}.group-title .arrow[data-v-76f8d9c7]{font-size:10px;opacity:.7;transition:transform .25s ease}.menu.collapsed .group-title[data-v-76f8d9c7]{padding:12px;justify-content:center}.menu.collapsed .group-icon[data-v-76f8d9c7] svg{width:22px;height:22px}.group-title.open .arrow[data-v-76f8d9c7]{transform:rotate(0)}.group-title:not(.open) .arrow[data-v-76f8d9c7]{transform:rotate(-90deg)}.group-items-wrap[data-v-76f8d9c7]{max-height:0;overflow:hidden;transition:max-height .3s ease-out}.group-items-wrap.open[data-v-76f8d9c7]{max-height:500px;transition:max-height .35s ease-in}.group-items[data-v-76f8d9c7]{list-style:none;padding:0;margin:0}.group-items a[data-v-76f8d9c7]{display:block;padding:9px 16px 9px 36px;color:#475569;text-decoration:none;font-size:13px;transition:all .15s;border-left:3px solid transparent}.group-items a[data-v-76f8d9c7]:hover{background:#f1f5f9;color:#0f172a}.group-items a.active[data-v-76f8d9c7]{background:rgba(13,148,136,.12);color:#0f766e;font-weight:500;border-left-color:#0d9488}.main[data-v-76f8d9c7]{flex:1;overflow:auto;background:#fff;min-width:0;min-height:0;display:flex;flex-direction:column}.main[data-v-76f8d9c7]>*{flex:1;min-height:0}.app-footer[data-v-76f8d9c7]{flex-shrink:0;padding:14px 24px;text-align:center;font-size:12px;color:#94a3b8;background:#fff;border-top:1px solid #e2e8f0}.app-footer-line[data-v-76f8d9c7]{margin:0;line-height:1.6}.app-footer-line+.app-footer-line[data-v-76f8d9c7]{margin-top:2px}.footer-sep[data-v-76f8d9c7]{color:#94a3b8}.app-footer a[data-v-76f8d9c7]{color:#94a3b8;text-decoration:none}.app-footer a[data-v-76f8d9c7]:hover{color:#64748b;text-decoration:underline}.modal-overlay[data-v-76f8d9c7]{position:fixed;inset:0;background:rgba(15,23,42,.4);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:2000}.modal-box[data-v-76f8d9c7]{background:#fff;border-radius:16px;padding:28px;min-width:360px;box-shadow:0 25px 50px -12px #0003;border:1px solid #e2e8f0}.modal-box h3[data-v-76f8d9c7]{margin:0 0 24px;font-size:18px;font-weight:600;color:#0f172a}.modal-field[data-v-76f8d9c7]{margin-bottom:18px}.modal-field label[data-v-76f8d9c7]{display:block;margin-bottom:8px;font-size:13px;color:#475569;font-weight:500}.modal-field input[data-v-76f8d9c7]{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:border-color .2s}.modal-field input[data-v-76f8d9c7]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.modal-actions[data-v-76f8d9c7]{display:flex;gap:12px;margin-top:24px}.btn-cancel[data-v-76f8d9c7]{padding:10px 20px;background:#f1f5f9;color:#475569;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.btn-cancel[data-v-76f8d9c7]:hover{background:#e2e8f0}@media (max-width: 768px){.menu-trigger-header[data-v-76f8d9c7]{display:flex;align-items:center;justify-content:center}.app-layout.mobile .sidebar-overlay[data-v-76f8d9c7]{display:block}.app-layout.mobile .sidebar[data-v-76f8d9c7]{position:fixed;left:0;top:60px;bottom:0;z-index:1000;width:280px;max-width:85vw;box-shadow:8px 0 30px #0f172a29}.app-layout.mobile.collapsed .sidebar[data-v-76f8d9c7]{transform:translate(-100%)}.app-footer[data-v-76f8d9c7]{font-size:11px;padding:10px 16px}}.login-page[data-v-b5b91abb]{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0f172a 0%,#1e293b 50%,#334155 100%)}.login-footer[data-v-b5b91abb]{position:absolute;left:0;right:0;bottom:0;padding:16px;text-align:center;font-size:12px;color:#ffffff8c}.login-footer p[data-v-b5b91abb]{margin:0}.login-footer a[data-v-b5b91abb]{color:#ffffffb3;text-decoration:none}.login-footer a[data-v-b5b91abb]:hover{color:#fff;text-decoration:underline}.login-card[data-v-b5b91abb]{background:rgba(255,255,255,.9);backdrop-filter:blur(8px);padding:40px;border-radius:16px;box-shadow:0 20px 60px #0f172a52;border:1px solid rgba(255,255,255,.45);width:100%;max-width:380px}.title[data-v-b5b91abb]{font-size:22px;color:#0d9488;margin:0 0 8px;text-align:center}.subtitle[data-v-b5b91abb]{color:#666;font-size:14px;margin:0 0 24px;text-align:center}.form .field[data-v-b5b91abb]{margin-bottom:16px}.form label[data-v-b5b91abb]{display:block;font-size:13px;color:#333;margin-bottom:6px}.form input[data-v-b5b91abb]{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;box-sizing:border-box}.form input[data-v-b5b91abb]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948824}.captcha-row[data-v-b5b91abb]{display:grid;grid-template-columns:1fr 148px;gap:10px;align-items:center}.captcha-box[data-v-b5b91abb]{height:50px;border:1px solid #cbd5e1;border-radius:8px;padding:0;background:#f8fafc;overflow:hidden;cursor:pointer;appearance:none;-webkit-appearance:none;display:flex;align-items:stretch;justify-content:stretch;line-height:0}.captcha-box[data-v-b5b91abb]:hover:not(:disabled){border-color:#0d9488}.captcha-svg[data-v-b5b91abb]{width:100%;height:100%;display:block}.captcha-svg[data-v-b5b91abb] svg{width:100%;height:100%;display:block}.captcha-loading[data-v-b5b91abb]{color:#64748b;font-size:12px}.captcha-tip[data-v-b5b91abb]{margin:6px 0 0;font-size:12px;color:#64748b}.error[data-v-b5b91abb]{color:#c62828;font-size:13px;margin:0 0 12px}.btn[data-v-b5b91abb]{width:100%;padding:12px;background:#0d9488;color:#fff;border:none;border-radius:6px;font-size:15px;cursor:pointer}.btn[data-v-b5b91abb]:hover:not(:disabled){background:#0f766e}.btn-ghost[data-v-b5b91abb]{margin-top:10px;background:#eef7f6;color:#0f766e}.btn-ghost[data-v-b5b91abb]:hover:not(:disabled){background:#dff2f0}.btn[data-v-b5b91abb]:disabled{opacity:.7;cursor:not-allowed}.guest-modal-mask[data-v-b5b91abb]{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center}.guest-modal[data-v-b5b91abb]{width:320px;background:#fff;border-radius:10px;padding:18px}.guest-modal h3[data-v-b5b91abb]{margin:0 0 12px;font-size:16px}.guest-modal select[data-v-b5b91abb]{width:100%;padding:10px;border:1px solid #ddd;border-radius:6px}.guest-actions[data-v-b5b91abb]{margin-top:12px;display:grid;gap:8px}.btn-cancel[data-v-b5b91abb]{background:#e5e7eb;color:#111827}.detail-overlay[data-v-6b39c73a]{position:fixed;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.detail-panel[data-v-6b39c73a]{background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);border-radius:16px;width:100%;max-width:620px;max-height:85vh;overflow:auto;box-shadow:0 24px 48px #0003,0 0 0 1px #0000000d}.detail-header[data-v-6b39c73a]{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:linear-gradient(135deg,#0d9488 0%,#0f766e 100%);color:#fff;border-radius:16px 16px 0 0}.detail-title[data-v-6b39c73a]{font-size:16px;font-weight:600;letter-spacing:.3px}.btn-close[data-v-6b39c73a]{width:32px;height:32px;background:rgba(255,255,255,.2);border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s}.btn-close[data-v-6b39c73a]:hover{background:rgba(255,255,255,.3)}.detail-body[data-v-6b39c73a]{padding:20px}.loading-state[data-v-6b39c73a]{display:flex;flex-direction:column;align-items:center;gap:12px;color:#64748b;padding:40px}.spinner[data-v-6b39c73a]{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:#0d9488;border-radius:50%;animation:spin-6b39c73a .8s linear infinite}@keyframes spin-6b39c73a{to{transform:rotate(360deg)}}.info-grid[data-v-6b39c73a]{display:flex;flex-direction:column;gap:14px}.info-card[data-v-6b39c73a]{padding:16px;background:#fff;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000a}.info-card-highlight[data-v-6b39c73a]{border-color:#99f6e4;background:linear-gradient(135deg,#f0fdfa 0%,#ccfbf1 20%)}.info-row[data-v-6b39c73a]{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0;font-size:14px;border-bottom:1px solid #f1f5f9}.info-row[data-v-6b39c73a]:last-child{border-bottom:none}.info-label[data-v-6b39c73a]{color:#64748b;min-width:80px}.info-value[data-v-6b39c73a]{color:#334155;font-weight:500;text-align:right}.warn-text[data-v-6b39c73a]{color:#dc2626}.metric-header-row[data-v-6b39c73a]{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:10px}.metric-meta[data-v-6b39c73a]{display:flex;flex-direction:column;gap:2px;min-width:0}.metric-meta-label[data-v-6b39c73a]{font-size:11px;color:#64748b}.metric-meta-value[data-v-6b39c73a]{font-size:12px;font-weight:500;color:#0f172a}.metric-values[data-v-6b39c73a]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width: 520px){.metric-values[data-v-6b39c73a]{grid-template-columns:1fr}}.metric-item[data-v-6b39c73a]{padding:10px;border-radius:10px;border:1px solid rgba(13,148,136,.18);background:rgba(255,255,255,.72)}.metric-name[data-v-6b39c73a]{font-size:12px;color:#64748b;margin-bottom:4px}.metric-val[data-v-6b39c73a]{font-size:18px;font-weight:700;color:#0f172a}.metric-unit[data-v-6b39c73a]{font-size:11px;font-weight:600;color:#64748b;margin-left:4px}.report-section[data-v-6b39c73a]{margin-top:18px;padding-top:16px;border-top:1px dashed #e2e8f0}.report-section-title[data-v-6b39c73a]{font-size:13px;color:#64748b;margin-bottom:12px;font-weight:500}.report-links[data-v-6b39c73a]{display:flex;gap:10px;flex-wrap:wrap}.report-btn[data-v-6b39c73a]{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;flex:1;min-width:72px;border:2px solid transparent;box-shadow:0 1px 3px #00000014}.report-btn[data-v-6b39c73a]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.report-btn[data-v-6b39c73a]:active{transform:translateY(0);box-shadow:0 1px 3px #00000014}.report-btn-primary[data-v-6b39c73a]{background:linear-gradient(135deg,#0d9488 0%,#0f766e 100%);border-color:#0d9488;color:#fff}.report-btn-primary[data-v-6b39c73a]:hover{background:linear-gradient(135deg,#0f766e 0%,#115e59 100%);box-shadow:0 4px 16px #0d948866}.report-btn-action[data-v-6b39c73a]{background:#fff;border-color:#0d9488;color:#0d9488}.report-btn-action[data-v-6b39c73a]:hover{background:#f0fdfa;border-color:#0f766e;color:#0f766e;box-shadow:0 4px 12px #0d948840}.report-icon[data-v-6b39c73a]{width:16px;height:16px;flex-shrink:0}.edit-form[data-v-6b39c73a]{margin-top:8px}.edit-form-subtitle[data-v-6b39c73a]{font-size:12px;font-weight:600;color:#475569;margin-top:12px;margin-bottom:4px;padding-top:10px;border-top:1px solid #e2e8f0}.edit-form-subtitle[data-v-6b39c73a]:first-child{margin-top:0;padding-top:0;border-top:none}.form-row[data-v-6b39c73a]{display:flex;align-items:center;gap:10px;padding:6px 0}.form-row label[data-v-6b39c73a]{min-width:200px;font-size:.8125rem;color:#64748b;line-height:1.3}.form-input[data-v-6b39c73a]{flex:1;padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px}.action-row[data-v-6b39c73a]{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.btn[data-v-6b39c73a]{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary[data-v-6b39c73a]{background:#0d9488;color:#fff;border:none}.btn-primary[data-v-6b39c73a]:hover{background:#0f766e;box-shadow:0 2px 8px #0d948866}.btn-outline[data-v-6b39c73a]{background:#fff;color:#0d9488;border:1px solid #0d9488}.btn-outline[data-v-6b39c73a]:hover{background:#f0fdfa}.chart-overlay[data-v-6b39c73a]{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px}.chart-modal[data-v-6b39c73a]{background:#fff;border-radius:16px;width:100%;max-width:700px;max-height:90vh;overflow:hidden;box-shadow:0 24px 64px #00000040}.chart-modal-header[data-v-6b39c73a]{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#0f172a;color:#fff;flex-wrap:wrap}.chart-title[data-v-6b39c73a]{font-weight:600}.chart-type-tabs[data-v-6b39c73a]{display:flex;gap:4px;margin-left:auto}.chart-tab[data-v-6b39c73a]{padding:6px 14px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#94a3b8;font-size:12px;border-radius:6px;cursor:pointer;transition:all .2s}.chart-tab[data-v-6b39c73a]:hover{color:#fff;border-color:#ffffff80}.chart-tab.active[data-v-6b39c73a]{background:#0d9488;border-color:#0d9488;color:#fff}.btn-close-chart[data-v-6b39c73a]{margin-left:0}.chart-modal-body[data-v-6b39c73a]{padding:20px;min-height:320px;position:relative}.realtime-chart[data-v-6b39c73a]{width:100%;height:300px;min-height:300px}.chart-loading-overlay[data-v-6b39c73a]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.9);color:#64748b;font-size:14px}.chart-modal-body[data-v-6b39c73a]{position:relative}.detail-overlay[data-v-598e4ff6]{position:fixed;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.detail-panel[data-v-598e4ff6]{background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);border-radius:16px;width:100%;max-width:560px;max-height:85vh;overflow:auto;box-shadow:0 24px 48px #0003,0 0 0 1px #0000000d}.detail-header[data-v-598e4ff6]{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:linear-gradient(135deg,#0d9488 0%,#0f766e 100%);color:#fff;border-radius:16px 16px 0 0}.detail-title[data-v-598e4ff6]{font-size:16px;font-weight:600;letter-spacing:.3px}.btn-close[data-v-598e4ff6]{width:32px;height:32px;background:rgba(255,255,255,.2);border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s}.btn-close[data-v-598e4ff6]:hover{background:rgba(255,255,255,.3)}.detail-body[data-v-598e4ff6]{padding:20px}.loading-state[data-v-598e4ff6]{display:flex;flex-direction:column;align-items:center;gap:12px;color:#64748b;padding:40px}.spinner[data-v-598e4ff6]{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:#0d9488;border-radius:50%;animation:spin-598e4ff6 .8s linear infinite}@keyframes spin-598e4ff6{to{transform:rotate(360deg)}}.info-grid[data-v-598e4ff6]{display:flex;flex-direction:column;gap:14px}.info-card[data-v-598e4ff6]{padding:16px;background:#fff;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000a}.info-card-highlight[data-v-598e4ff6]{border-color:#99f6e4;background:linear-gradient(135deg,#f0fdfa 0%,#ccfbf1 20%)}.info-row[data-v-598e4ff6]{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0;font-size:14px;border-bottom:1px solid #f1f5f9}.info-row[data-v-598e4ff6]:last-child{border-bottom:none}.info-label[data-v-598e4ff6]{color:#64748b;min-width:80px}.info-value[data-v-598e4ff6]{color:#334155;font-weight:500;text-align:right}.metric-tabs[data-v-598e4ff6]{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.metric-tab[data-v-598e4ff6]{padding:6px 10px;font-size:12px;border-radius:999px;border:1px solid #99f6e4;background:rgba(255,255,255,.7);color:#0f766e;cursor:pointer;transition:all .2s}.metric-tab[data-v-598e4ff6]:hover{background:#fff;border-color:#5eead4}.metric-tab.active[data-v-598e4ff6]{background:#0d9488;border-color:#0d9488;color:#fff;box-shadow:0 2px 8px #0d948840}.metric-values[data-v-598e4ff6]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width: 520px){.metric-values[data-v-598e4ff6]{grid-template-columns:1fr}}.metric-item[data-v-598e4ff6]{padding:10px;border-radius:10px;border:1px solid rgba(13,148,136,.18);background:rgba(255,255,255,.72)}.metric-name[data-v-598e4ff6]{font-size:12px;color:#64748b;margin-bottom:4px}.metric-val[data-v-598e4ff6]{font-size:18px;font-weight:700;color:#0f172a}.metric-unit[data-v-598e4ff6]{font-size:12px;font-weight:600;color:#64748b;margin-left:4px}.report-section[data-v-598e4ff6]{margin-top:18px;padding-top:16px;border-top:1px dashed #e2e8f0}.report-section-title[data-v-598e4ff6]{font-size:13px;color:#64748b;margin-bottom:12px;font-weight:500}.report-links[data-v-598e4ff6]{display:flex;gap:10px;flex-wrap:wrap}.report-btn[data-v-598e4ff6]{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;flex:1;min-width:72px;border:2px solid transparent;box-shadow:0 1px 3px #00000014}.report-btn[data-v-598e4ff6]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.report-btn[data-v-598e4ff6]:active{transform:translateY(0);box-shadow:0 1px 3px #00000014}.report-btn-primary[data-v-598e4ff6]{background:linear-gradient(135deg,#0d9488 0%,#0f766e 100%);border-color:#0d9488;color:#fff}.report-btn-primary[data-v-598e4ff6]:hover{background:linear-gradient(135deg,#0f766e 0%,#115e59 100%);box-shadow:0 4px 16px #0d948866}.report-btn-action[data-v-598e4ff6]{background:#fff;border-color:#0d9488;color:#0d9488}.report-btn-action[data-v-598e4ff6]:hover{background:#f0fdfa;border-color:#0f766e;color:#0f766e;box-shadow:0 4px 12px #0d948840}.report-icon[data-v-598e4ff6]{width:16px;height:16px;flex-shrink:0}.chart-overlay[data-v-598e4ff6]{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px}.chart-modal[data-v-598e4ff6]{background:#fff;border-radius:16px;width:100%;max-width:760px;max-height:90vh;overflow:hidden;box-shadow:0 24px 64px #00000040}.chart-modal-header[data-v-598e4ff6]{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#0f172a;color:#fff;flex-wrap:wrap}.chart-title[data-v-598e4ff6]{font-weight:600}.chart-type-tabs[data-v-598e4ff6]{display:flex;gap:4px;margin-left:auto}.chart-tab[data-v-598e4ff6]{padding:6px 14px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#94a3b8;font-size:12px;border-radius:6px;cursor:pointer;transition:all .2s}.chart-tab[data-v-598e4ff6]:hover{color:#fff;border-color:#ffffff80}.chart-tab.active[data-v-598e4ff6]{background:#0d9488;border-color:#0d9488;color:#fff}.btn-close-chart[data-v-598e4ff6]{margin-left:0}.chart-modal-body[data-v-598e4ff6]{padding:20px;min-height:320px;position:relative}.realtime-chart[data-v-598e4ff6]{width:100%;height:320px;min-height:320px}.chart-loading-overlay[data-v-598e4ff6]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.9);color:#64748b;font-size:14px}.alarm-audio[data-v-39ea4ca7]{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.map-page[data-v-39ea4ca7]{display:flex;flex-direction:column;flex:1;min-height:0;max-height:calc(100vh - 120px);max-width:100%;overflow:hidden}.map-view[data-v-39ea4ca7]{flex:1;min-height:0;display:flex;flex-direction:column;background:#fff;position:relative;overflow:hidden}.map-container[data-v-39ea4ca7]{flex:1;overflow:auto;position:relative;cursor:move;min-height:0;scrollbar-gutter:stable}.map-container--loading[data-v-39ea4ca7]{overflow:hidden;cursor:default}.map-loading-overlay[data-v-39ea4ca7]{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:linear-gradient(160deg,#f0f9ff 0%,#f8fafc 45%,#f1f5f9 100%)}.map-loading-spinner[data-v-39ea4ca7]{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#0d9488;border-radius:50%;animation:map-loading-spin-39ea4ca7 .8s linear infinite}.map-loading-text[data-v-39ea4ca7]{margin:0;font-size:14px;color:#64748b;letter-spacing:.02em}@keyframes map-loading-spin-39ea4ca7{to{transform:rotate(360deg)}}.map-container.grabbing[data-v-39ea4ca7]{cursor:move;user-select:none}.map-container:not(.grabbing) .marker-wrapper[data-v-39ea4ca7]:hover{cursor:pointer}.viewer[data-v-39ea4ca7]{position:relative;display:block}.map-image[data-v-39ea4ca7]{display:block;max-width:none;vertical-align:top}.map-overlay[data-v-39ea4ca7]{position:absolute;z-index:10;pointer-events:none}.map-overlay[data-v-39ea4ca7]>*{pointer-events:auto}.map-overlay-fixed[data-v-39ea4ca7]{position:fixed;z-index:20;pointer-events:none}.map-overlay-fixed[data-v-39ea4ca7]>*{pointer-events:auto}.map-overlay-top-left[data-v-39ea4ca7]{top:72px;left:calc(var(--sidebar-width, 220px) + 12px);display:flex;flex-direction:column;align-items:flex-start;gap:8px}.region-badge[data-v-39ea4ca7]{padding:6px 12px;background:rgba(255,255,255,.95);border:1px solid #e2e8f0;border-radius:8px;font-size:13px;font-weight:500;color:#334155;box-shadow:0 2px 8px #00000014}.coord-display[data-v-39ea4ca7]{padding:4px 10px;background:rgba(15,23,42,.85);color:#94a3b8;font-size:12px;font-family:ui-monospace,monospace;border-radius:6px}.map-overlay-bottom-left[data-v-39ea4ca7]{bottom:48px;left:calc(var(--sidebar-width, 220px) + 12px)}@media (max-width: 768px){.map-overlay-top-left[data-v-39ea4ca7]{left:12px;top:72px}.map-overlay-bottom-left[data-v-39ea4ca7]{left:12px}}.map-overlay-fixed.map-overlay-bottom-left .zoom-controls[data-v-39ea4ca7]{pointer-events:auto}.zoom-controls[data-v-39ea4ca7]{display:flex;align-items:center;gap:2px;background:rgba(255,255,255,.95);border:1px solid #e2e8f0;padding:4px 6px;border-radius:8px;box-shadow:0 2px 8px #00000014}.zoom-btn[data-v-39ea4ca7]{width:32px;height:32px;border:none;background:#f8fafc;color:#475569;font-size:18px;line-height:1;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .2s}.zoom-btn[data-v-39ea4ca7]:hover:not(:disabled){background:#0d9488;color:#fff}.zoom-btn[data-v-39ea4ca7]:disabled{opacity:.4;cursor:not-allowed}.zoom-value[data-v-39ea4ca7]{font-size:12px;min-width:44px;text-align:center;color:#64748b;font-weight:500}.marker-wrapper[data-v-39ea4ca7]{position:absolute;left:0;top:0;z-index:5;transition:z-index .15s}.marker-pin[data-v-39ea4ca7]{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:#0d9488;border:2px solid #fff;box-shadow:0 2px 8px #0000004d;pointer-events:none}.marker-pin-hydro[data-v-39ea4ca7]{background:#0d9488}.marker-pin-weather[data-v-39ea4ca7]{background:#38bdf8}.marker-connector[data-v-39ea4ca7]{position:absolute;left:-1px;top:6px;width:2px;height:10px;background:linear-gradient(to bottom,#0d9488 0%,rgba(13,148,136,.5) 100%);pointer-events:none}.marker-card[data-v-39ea4ca7]{position:absolute;left:-80px;top:16px;transform:none;min-width:160px;background:#ffffff;border-radius:10px;border:1px solid #e2e8f0;box-shadow:0 10px 30px #0f172a1f,0 0 0 1px #0f172a08;overflow:hidden;transition:transform .2s,box-shadow .2s}.marker-card-hydro[data-v-39ea4ca7]{border-color:#bae6fd}.marker-card-weather[data-v-39ea4ca7]{border-color:#bfdbfe}.marker-wrapper:hover .marker-card[data-v-39ea4ca7],.marker-wrapper.hovered .marker-card[data-v-39ea4ca7]{transform:scale(1.02);box-shadow:0 14px 40px #0f172a29,0 0 0 1px #0f172a08}.marker-header[data-v-39ea4ca7]{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid #e2e8f0}.marker-header-hydro[data-v-39ea4ca7]{background:linear-gradient(135deg,#f0fdfa 0%,#fed7aa 100%)}.marker-header-weather[data-v-39ea4ca7]{background:linear-gradient(135deg,#eff6ff 0%,#6fb5f3 100%)}.marker-card-maint[data-v-39ea4ca7]{background:#fef2f2;border-color:#fecaca}.marker-header-maint[data-v-39ea4ca7]{background:linear-gradient(135deg,#fee2e2 0%,#fca5a5 100%);border-bottom-color:#fecaca}.maint-pill[data-v-39ea4ca7]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;border-radius:4px;font-size:11px;font-weight:800;color:#fff;background:#dc2626;border:1px solid #991b1b}.marker-icon[data-v-39ea4ca7]{width:14px;height:14px;flex-shrink:0}.marker-station[data-v-39ea4ca7]{font-size:12px;font-weight:700;color:#0f172a;flex:1;min-width:0}.warn-icon-wrap[data-v-39ea4ca7]{position:relative;display:inline-flex;align-items:flex-end;flex-shrink:0;margin-left:2px;vertical-align:middle}.warn-icon[data-v-39ea4ca7]{height:14px;width:auto;display:block}.warn-badge[data-v-39ea4ca7]{position:absolute;right:-6px;bottom:-4px;min-width:13px;height:13px;padding:0 2px;border-radius:4px;font-size:8px;font-weight:800;line-height:13px;text-align:center;letter-spacing:-.02em;color:#fff;border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 3px #00000059;pointer-events:none}.warn-badge--wide[data-v-39ea4ca7]{min-width:18px;font-size:7px;padding:0 1px}.warn-badge--chg[data-v-39ea4ca7]{background:linear-gradient(145deg,#475569,#334155)}.warn-badge--drop1[data-v-39ea4ca7]{background:linear-gradient(145deg,#2563eb,#1d4ed8)}.warn-badge--drop2[data-v-39ea4ca7]{background:linear-gradient(145deg,#eab308,#ca8a04);color:#1c1917;border-color:#fff}.warn-badge--drop3[data-v-39ea4ca7]{background:linear-gradient(145deg,#f97316,#ea580c)}.warn-badge--drop4[data-v-39ea4ca7]{background:linear-gradient(145deg,#ef4444,#b91c1c)}.warn-badge--upchg[data-v-39ea4ca7]{background:linear-gradient(145deg,#0d9488,#0f766e)}.warn-badge--dnchg[data-v-39ea4ca7]{background:linear-gradient(145deg,#7c3aed,#6d28d9)}.warn-badge--up[data-v-39ea4ca7]{background:#0ea5e9}.warn-badge--dn[data-v-39ea4ca7]{background:#8b5cf6}.warn-badge--nodata[data-v-39ea4ca7]{background:#64748b}.warn-badge--cum[data-v-39ea4ca7]{background:#d97706}.warn-badge--anom[data-v-39ea4ca7]{background:#be123c}.warn-badge--volt[data-v-39ea4ca7]{background:#6366f1;font-size:7px}.warn-badge--other[data-v-39ea4ca7]{background:#334155;font-size:7px}.marker-values[data-v-39ea4ca7]{padding:8px 10px;display:flex;flex-direction:column;gap:4px}.val-row[data-v-39ea4ca7]{display:flex;align-items:center;gap:6px;font-size:11px}.val-label[data-v-39ea4ca7]{color:#94a3b8;min-width:32px}.val-num[data-v-39ea4ca7]{font-weight:700;color:#0f172a;font-variant-numeric:tabular-nums}.val-water .val-num[data-v-39ea4ca7]{color:#38bdf8}.val-temp .val-num[data-v-39ea4ca7]{color:#fbbf24}.val-volt .val-num[data-v-39ea4ca7]{color:#a78bfa}.val-unit[data-v-39ea4ca7]{color:#64748b;font-size:10px;font-weight:600}.marker-extra[data-v-39ea4ca7]{padding:4px 10px 8px;font-size:10px;color:#64748b;display:flex;gap:10px;flex-wrap:wrap}.analysis-sync-hint[data-v-d53eedd9]{margin:0 0 8px;padding:8px 10px;background:#ecfdf5;border:1px solid #6ee7b7;border-radius:6px;color:#065f46;font-size:12px;line-height:1.5}.report-view[data-v-a997f19b]{min-height:500px;display:flex;flex-direction:column;padding:0 20px 24px}.report-header[data-v-a997f19b]{padding:16px 24px;background:#fff;color:#0f172a;border-bottom:1px solid #e2e8f0}.report-header h1[data-v-a997f19b]{margin:0;font-size:18px;font-weight:600}@media (max-width: 768px){.report-view[data-v-a997f19b]{padding:0 12px 16px}.report-header[data-v-a997f19b]{padding:12px 16px}.report-header h1[data-v-a997f19b]{font-size:16px}.report-form-row[data-v-a997f19b]{padding:12px 16px;gap:10px}.station-select[data-v-a997f19b]{flex-direction:column;align-items:flex-start}.station-chips[data-v-a997f19b]{max-width:100%}.report-form[data-v-a997f19b]{flex-direction:column;align-items:stretch}.chart-wrap[data-v-a997f19b]{margin-bottom:16px}.chart-toolbar[data-v-a997f19b]{top:4px;right:8px;flex-wrap:wrap;gap:4px}.chart-btn[data-v-a997f19b]{padding:4px 10px;font-size:11px}.chart[data-v-a997f19b]{min-height:260px!important}.data-table[data-v-a997f19b]{font-size:11px}.data-table th[data-v-a997f19b],.data-table td[data-v-a997f19b]{padding:6px 8px}}.report-form-row[data-v-a997f19b]{padding:16px 24px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column;gap:14px}.station-select[data-v-a997f19b]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.station-label[data-v-a997f19b]{font-size:13px;color:#64748b}.station-chips[data-v-a997f19b]{display:flex;flex-wrap:wrap;gap:8px}.station-chip[data-v-a997f19b]{padding:6px 14px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;color:#475569;font-size:13px;cursor:pointer;transition:all .2s}.station-chip[data-v-a997f19b]:hover{border-color:#0d9488;color:#0d9488}.station-chip.active[data-v-a997f19b]{background:#0d9488;border-color:#0d9488;color:#fff;box-shadow:0 2px 8px #0d94884d}.station-chip-all[data-v-a997f19b]{font-weight:500}.report-form[data-v-a997f19b]{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.form-label[data-v-a997f19b]{font-size:13px;color:#64748b}.form-select[data-v-a997f19b],.form-input[data-v-a997f19b]{padding:7px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;background:#fff}.form-select-year[data-v-a997f19b]{min-width:90px}.btn-print[data-v-a997f19b]{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:#334155;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-print[data-v-a997f19b]:hover{background:#1e293b;box-shadow:0 2px 8px #3341554d}.btn-print[data-v-a997f19b]:active{transform:translateY(0)}.data-table-wrap[data-v-a997f19b]{margin:16px 0}.data-table[data-v-a997f19b]{width:100%;border-collapse:collapse;border:1px solid #e2e8f0;font-size:13px}.data-table th[data-v-a997f19b],.data-table td[data-v-a997f19b]{border:1px solid #e2e8f0;padding:8px 10px;text-align:center}.data-table th[data-v-a997f19b]{background:#f1f5f9;font-weight:600}.data-table td.station-name[data-v-a997f19b]{text-align:left;font-weight:500;min-width:100px}.data-table tbody tr[data-v-a997f19b]:nth-child(2n){background:#fafafa}.chart-wrap[data-v-a997f19b]{position:relative;margin-bottom:24px}.chart-toolbar[data-v-a997f19b]{position:absolute;top:8px;right:16px;z-index:10;display:flex;gap:6px}.chart-btn[data-v-a997f19b]{padding:5px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;font-size:12px;cursor:pointer;transition:all .2s}.chart-btn[data-v-a997f19b]:hover{border-color:#0d9488;color:#0d9488}.chart-btn.active[data-v-a997f19b]{background:#0d9488;border-color:#0d9488;color:#fff}.chart-btn-download[data-v-a997f19b]{margin-left:4px}.chart[data-v-a997f19b]{min-height:380px}.analysis-section[data-v-a997f19b]{margin-top:24px;display:flex;justify-content:center}.analysis-inner[data-v-a997f19b]{width:100%;max-width:720px;display:flex;flex-direction:column;gap:12px}.analysis-label[data-v-a997f19b]{font-weight:600;font-size:15px;color:#334155}.analysis-history[data-v-a997f19b]{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.analysis-item[data-v-a997f19b]{display:flex;align-items:flex-start;gap:6px;font-size:14px}.analysis-author[data-v-a997f19b]{color:#0d9488;font-weight:500;flex-shrink:0}.analysis-time[data-v-a997f19b]{font-weight:400;color:#94a3b8;margin-left:2px}.analysis-content[data-v-a997f19b]{flex:1;color:#475569;white-space:pre-wrap;word-break:break-word}.analysis-delete[data-v-a997f19b]{flex-shrink:0;width:24px;height:24px;padding:0;border:none;background:#fef2f2;color:#dc2626;font-size:18px;line-height:1;border-radius:4px;cursor:pointer;opacity:.8}.analysis-delete[data-v-a997f19b]:hover{opacity:1;background:#fecaca}.analysis-input-row[data-v-a997f19b]{display:flex;flex-direction:column;gap:10px}.analysis-textarea[data-v-a997f19b]{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;resize:vertical;min-height:100px}.analysis-textarea[data-v-a997f19b]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.btn-save[data-v-a997f19b]{align-self:flex-end;padding:10px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-save[data-v-a997f19b]:hover:not(:disabled){background:#0f766e;box-shadow:0 2px 8px #0d94884d}.btn-save[data-v-a997f19b]:disabled{opacity:.6;cursor:not-allowed}.report-view[data-v-2903a211]{min-height:500px;display:flex;flex-direction:column;padding:0 20px 24px}.report-header[data-v-2903a211]{padding:16px 24px;background:#fff;color:#0f172a;border-bottom:1px solid #e2e8f0}.report-header h1[data-v-2903a211]{margin:0;font-size:18px;font-weight:600}.report-form-row[data-v-2903a211]{padding:16px 24px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column;gap:14px}.station-select[data-v-2903a211]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.station-label[data-v-2903a211]{font-size:13px;color:#64748b}.station-chips[data-v-2903a211]{display:flex;flex-wrap:wrap;gap:8px}.station-chip[data-v-2903a211]{padding:6px 14px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;color:#475569;font-size:13px;cursor:pointer;transition:all .2s}.station-chip[data-v-2903a211]:hover{border-color:#0d9488;color:#0d9488}.station-chip.active[data-v-2903a211]{background:#0d9488;border-color:#0d9488;color:#fff;box-shadow:0 2px 8px #0d94884d}.station-chip-all[data-v-2903a211]{font-weight:500}.report-form[data-v-2903a211]{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.raw-range-hint[data-v-2903a211]{margin:0;font-size:12px;color:#b45309;line-height:1.5}.form-label[data-v-2903a211]{font-size:13px;color:#64748b}.form-select[data-v-2903a211],.form-input[data-v-2903a211]{padding:7px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;background:#fff}.btn-print[data-v-2903a211]{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:#334155;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-print[data-v-2903a211]:hover{background:#1e293b;box-shadow:0 2px 8px #3341554d}.chart-wrap[data-v-2903a211]{position:relative;margin:16px 0 24px}.chart-toolbar[data-v-2903a211]{position:absolute;top:8px;right:16px;z-index:10;display:flex;gap:6px}.chart-btn[data-v-2903a211]{padding:5px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;font-size:12px;cursor:pointer;transition:all .2s}.chart-btn[data-v-2903a211]:hover{border-color:#0d9488;color:#0d9488}.chart-btn.active[data-v-2903a211]{background:#0d9488;border-color:#0d9488;color:#fff}.chart-btn-download[data-v-2903a211]{margin-left:4px}.chart[data-v-2903a211]{min-height:380px}.analysis-section[data-v-2903a211]{margin-top:24px;display:flex;justify-content:center}.analysis-inner[data-v-2903a211]{width:100%;max-width:720px;display:flex;flex-direction:column;gap:12px}.analysis-label[data-v-2903a211]{font-weight:600;font-size:15px;color:#334155}.analysis-history[data-v-2903a211]{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.analysis-item[data-v-2903a211]{display:flex;align-items:flex-start;gap:6px;font-size:14px}.analysis-author[data-v-2903a211]{color:#0d9488;font-weight:500;flex-shrink:0}.analysis-time[data-v-2903a211]{font-weight:400;color:#94a3b8;margin-left:2px}.analysis-content[data-v-2903a211]{flex:1;color:#475569;white-space:pre-wrap;word-break:break-word}.analysis-delete[data-v-2903a211]{flex-shrink:0;width:24px;height:24px;padding:0;border:none;background:#fef2f2;color:#dc2626;font-size:18px;line-height:1;border-radius:4px;cursor:pointer;opacity:.8}.analysis-delete[data-v-2903a211]:hover{opacity:1;background:#fecaca}.analysis-input-row[data-v-2903a211]{display:flex;flex-direction:column;gap:10px}.analysis-textarea[data-v-2903a211]{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;resize:vertical;min-height:100px}.analysis-textarea[data-v-2903a211]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.btn-save[data-v-2903a211]{align-self:flex-end;padding:10px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-save[data-v-2903a211]:hover:not(:disabled){background:#0f766e;box-shadow:0 2px 8px #0d94884d}.btn-save[data-v-2903a211]:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.report-view[data-v-2903a211]{padding:0 12px 16px}.report-header[data-v-2903a211]{padding:12px 16px}.report-header h1[data-v-2903a211]{font-size:16px}.report-form-row[data-v-2903a211]{padding:12px 16px;gap:10px}.station-select[data-v-2903a211]{flex-direction:column;align-items:flex-start}.station-chips[data-v-2903a211]{max-width:100%}.report-form[data-v-2903a211]{flex-direction:column;align-items:stretch}.chart-wrap[data-v-2903a211]{margin-bottom:16px}.chart-toolbar[data-v-2903a211]{top:4px;right:8px;flex-wrap:wrap;gap:4px}.chart-btn[data-v-2903a211]{padding:4px 10px;font-size:11px}.chart[data-v-2903a211]{min-height:260px!important}}.page-view[data-v-f67d52b1]{padding:20px}.page-header[data-v-f67d52b1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h1[data-v-f67d52b1]{font-size:18px;margin:0}.data-table[data-v-f67d52b1]{width:100%;border-collapse:collapse;background:#fff}.data-table th[data-v-f67d52b1],.data-table td[data-v-f67d52b1]{border:1px solid #ddd;padding:10px 14px;text-align:left}.data-table th[data-v-f67d52b1]{background:#e8eaf6}.data-table tr[data-v-f67d52b1]:nth-child(2n){background:#f9f9f9}.page-view[data-v-57aff167]{padding:20px}.page-header[data-v-57aff167]{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.page-header h1[data-v-57aff167]{font-size:18px;margin:0}.page-header .date-picker[data-v-57aff167]{padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;background:#fff;min-width:160px}.page-header .date-picker[data-v-57aff167]:hover{border-color:#cbd5e1}.page-header .date-picker[data-v-57aff167]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.data-table[data-v-57aff167]{width:100%;border-collapse:collapse;background:#fff}.data-table th[data-v-57aff167],.data-table td[data-v-57aff167]{border:1px solid #ddd;padding:8px 12px;text-align:center;min-width:80px}.data-table th[data-v-57aff167]{background:#e8eaf6}.page-view[data-v-684615a8]{padding:20px}.page-header[data-v-684615a8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h1[data-v-684615a8]{font-size:18px;margin:0}.data-table[data-v-684615a8]{width:100%;border-collapse:collapse;background:#fff}.data-table th[data-v-684615a8],.data-table td[data-v-684615a8]{border:1px solid #ddd;padding:10px 14px;text-align:left}.data-table th[data-v-684615a8]{background:#e8eaf6}.data-table tr[data-v-684615a8]:nth-child(2n){background:#f9f9f9}.empty[data-v-684615a8]{text-align:center;color:#999}.sub-section[data-v-684615a8]{margin-top:24px}.sub-title[data-v-684615a8]{font-size:16px;margin:0 0 8px}.page-view[data-v-a442a9f4]{padding:20px}.page-header[data-v-a442a9f4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h1[data-v-a442a9f4]{font-size:18px;margin:0}.filters[data-v-a442a9f4]{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.form-input[data-v-a442a9f4],.form-select[data-v-a442a9f4]{height:34px;border:1px solid #ddd;border-radius:6px;padding:0 10px}.form-input[data-v-a442a9f4]{min-width:240px}.form-input.small[data-v-a442a9f4]{min-width:140px}.form-select[data-v-a442a9f4]{min-width:180px;padding-right:40px}.data-table[data-v-a442a9f4]{width:100%;border-collapse:collapse;background:#fff}.data-table th[data-v-a442a9f4],.data-table td[data-v-a442a9f4]{border:1px solid #ddd;padding:10px 14px;text-align:left}.data-table th[data-v-a442a9f4]{background:#e8eaf6}.data-table tr[data-v-a442a9f4]:nth-child(2n){background:#f9f9f9}.status-badge[data-v-a442a9f4]{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.data-table .status-done[data-v-a442a9f4]{color:#047857;background:#d1fae5;border:1px solid #a7f3d0}.data-table .status-pending[data-v-a442a9f4]{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.sms-preview[data-v-a442a9f4]{max-width:280px;font-size:12px;color:#334155;line-height:1.35;word-break:break-all}.empty[data-v-a442a9f4]{text-align:center;color:#999}.pager[data-v-a442a9f4]{display:flex;align-items:center;gap:10px;margin-top:12px;color:#475569;font-size:13px}.btn-page[data-v-a442a9f4]{height:30px;padding:0 10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer}.btn-page[data-v-a442a9f4]:disabled{opacity:.5;cursor:not-allowed}.page-size[data-v-a442a9f4]{min-width:120px;height:30px}.actions-cell[data-v-a442a9f4]{white-space:nowrap}.btn-action[data-v-a442a9f4]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action[data-v-a442a9f4]:disabled{opacity:.6;cursor:not-allowed}.btn-action-edit[data-v-a442a9f4]{background:#e0f2f1;color:#0d9488}.btn-action-warn[data-v-a442a9f4]{background:#fef3c7;color:#b45309}.page-view[data-v-b950e04b]{padding:20px}.page-header[data-v-b950e04b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h1[data-v-b950e04b]{font-size:18px;margin:0}.page-header .page-desc[data-v-b950e04b]{color:#64748b;font-size:12px;margin:6px 0 0;max-width:720px;line-height:1.5}.page-header .desc[data-v-b950e04b]{color:#666;font-size:12px;margin:0}.filters[data-v-b950e04b]{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.form-input[data-v-b950e04b],.form-select[data-v-b950e04b]{height:34px;border:1px solid #ddd;border-radius:6px;padding:0 10px}.form-input[data-v-b950e04b]{min-width:240px}.form-input.small[data-v-b950e04b]{min-width:140px}.form-select[data-v-b950e04b]{min-width:180px;padding-right:40px}.data-table[data-v-b950e04b]{width:100%;border-collapse:collapse;background:#fff}.data-table th[data-v-b950e04b],.data-table td[data-v-b950e04b]{border:1px solid #ddd;padding:10px 14px;text-align:left}.data-table th[data-v-b950e04b]{background:#e8eaf6}.data-table tr[data-v-b950e04b]:nth-child(2n){background:#f9f9f9}.status-badge[data-v-b950e04b]{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.data-table .status-done[data-v-b950e04b]{color:#047857;background:#d1fae5;border:1px solid #a7f3d0}.data-table .status-pending[data-v-b950e04b]{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.empty[data-v-b950e04b]{text-align:center;color:#999}.pager[data-v-b950e04b]{display:flex;align-items:center;gap:10px;margin-top:12px;color:#475569;font-size:13px}.btn-page[data-v-b950e04b]{height:30px;padding:0 10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer}.btn-page[data-v-b950e04b]:disabled{opacity:.5;cursor:not-allowed}.page-size[data-v-b950e04b]{min-width:120px;height:30px}.device-card[data-v-5c7bc541]{position:relative;border-radius:10px;padding:12px 14px 14px 16px;min-width:min(100%,320px);overflow:hidden;background:linear-gradient(145deg,#f8fafc 0%,#f1f5f9 50%,#e2e8f0 100%);border:1px solid rgba(148,163,184,.35);box-shadow:0 2px 8px #0f172a0f,inset 0 1px #fffc;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.device-card[data-v-5c7bc541]:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a1a,inset 0 1px #ffffffe6;border-color:#94a3b880}.device-card.is-online[data-v-5c7bc541]{background:linear-gradient(145deg,#f0fdf4 0%,#ecfdf5 40%,#d1fae5 100%);border-color:#22c55e40}.device-card.is-online[data-v-5c7bc541]:hover{border-color:#22c55e66}.card-accent[data-v-5c7bc541]{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:10px 0 0 10px;background:linear-gradient(180deg,#94a3b8 0%,#64748b 100%);opacity:.9}.device-card.is-online .card-accent[data-v-5c7bc541]{background:linear-gradient(180deg,#4ade80 0%,#22c55e 50%,#16a34a 100%);opacity:1;box-shadow:0 0 12px #22c55e66}.card-decoration[data-v-5c7bc541]{position:absolute;top:-20px;right:-20px;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.6),rgba(148,163,184,.15));pointer-events:none}.device-card.is-online .card-decoration[data-v-5c7bc541]{background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.5),rgba(34,197,94,.12))}.card-header[data-v-5c7bc541]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;position:relative;z-index:1}.header-left[data-v-5c7bc541]{display:flex;align-items:center;gap:8px;min-width:0}.header-actions[data-v-5c7bc541]{display:flex;align-items:center;gap:6px}.device-icon[data-v-5c7bc541]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);color:#fff;flex-shrink:0;box-shadow:0 2px 6px #4f46e559}.device-icon svg[data-v-5c7bc541]{width:16px;height:16px}.device-id[data-v-5c7bc541]{font-size:14px;font-weight:700;color:#1e293b;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge[data-v-5c7bc541]{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;flex-shrink:0;letter-spacing:.02em}.status-dot[data-v-5c7bc541]{width:5px;height:5px;border-radius:50%;background:currentColor;animation:pulse-5c7bc541 2s ease-in-out infinite}.status-offline .status-dot[data-v-5c7bc541]{animation:none}@keyframes pulse-5c7bc541{0%,to{opacity:1}50%{opacity:.5}}.status-online[data-v-5c7bc541]{background:linear-gradient(135deg,#dcfce7 0%,#bbf7d0 100%);color:#15803d;box-shadow:0 1px 2px #22c55e33}.status-offline[data-v-5c7bc541]{background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%);color:#64748b}.status-unmatched[data-v-5c7bc541]{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);color:#b45309;box-shadow:0 1px 2px #f59e0b33}.remove-btn[data-v-5c7bc541]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:8px;background:linear-gradient(145deg,#fef2f2 0%,#fee2e2 100%);color:#dc2626;cursor:pointer;flex-shrink:0;transition:transform .15s,box-shadow .15s;position:relative;z-index:1}.remove-btn svg[data-v-5c7bc541]{width:14px;height:14px}.remove-btn[data-v-5c7bc541]:hover{transform:scale(1.05);box-shadow:0 2px 8px #dc262640;background:linear-gradient(145deg,#fee2e2 0%,#fecaca 100%)}.command-btn[data-v-5c7bc541]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:8px;background:linear-gradient(145deg,#eef2ff 0%,#e0e7ff 100%);color:#4f46e5;cursor:pointer;flex-shrink:0;transition:transform .15s,box-shadow .15s,background-color .15s;position:relative;z-index:1}.command-btn svg[data-v-5c7bc541]{width:14px;height:14px}.command-btn[data-v-5c7bc541]:hover{transform:scale(1.05);box-shadow:0 2px 8px #4f46e547;background:linear-gradient(145deg,#e0e7ff 0%,#c7d2fe 100%)}.command-btn.is-sending[data-v-5c7bc541]{color:#2563eb;box-shadow:0 0 0 2px #3b82f62e}.card-address[data-v-5c7bc541]{display:flex;align-items:center;gap:6px;font-size:11px;color:#64748b;margin-bottom:8px;font-family:ui-monospace,monospace;position:relative;z-index:1}.address-icon[data-v-5c7bc541]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background:rgba(100,116,139,.15);color:#475569}.address-icon svg[data-v-5c7bc541]{width:12px;height:12px}.card-meta[data-v-5c7bc541]{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;position:relative;z-index:1}.meta-item[data-v-5c7bc541]{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#64748b;background:rgba(255,255,255,.6);padding:4px 8px;border-radius:6px;border:1px solid rgba(148,163,184,.2)}.meta-icon[data-v-5c7bc541]{font-size:10px;opacity:.9}.card-data[data-v-5c7bc541]{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin-bottom:8px;position:relative;z-index:1;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.data-chip[data-v-5c7bc541]{font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;border:1px solid transparent;box-shadow:0 1px 2px #0000000d;white-space:nowrap}.data-chip-water[data-v-5c7bc541]{background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);color:#1d4ed8;border-color:#3b82f64d}.data-chip-temp[data-v-5c7bc541]{background:linear-gradient(135deg,#ffedd5 0%,#fed7aa 100%);color:#c2410c;border-color:#f973164d}.data-chip-volt[data-v-5c7bc541]{background:linear-gradient(135deg,#ede9fe 0%,#ddd6fe 100%);color:#6d28d9;border-color:#8b5cf64d}.data-chip-muted[data-v-5c7bc541]{background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%);color:#94a3b8;border-color:#94a3b840}.at-last-command-inline[data-v-5c7bc541]{margin-top:2px;font-size:11px;color:#64748b;position:relative;z-index:1}.at-last-command-inline code[data-v-5c7bc541]{color:#4f46e5;font-size:11px;font-weight:600;padding:0 4px;background:rgba(99,102,241,.1);border-radius:4px}.at-shortcuts-row[data-v-5c7bc541]{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:6px}.at-shortcuts-label[data-v-5c7bc541]{font-size:11px;color:#6b7280}.at-shortcuts-chips[data-v-5c7bc541]{display:flex;flex-wrap:wrap;gap:4px}.at-shortcut-chip[data-v-5c7bc541]{border:none;padding:2px 8px;border-radius:999px;font-size:11px;background:#e5e7eb;color:#374151;cursor:pointer}.at-shortcut-chip[data-v-5c7bc541]:hover{background:#d1d5db}.at-row[data-v-5c7bc541]{display:flex;gap:8px;margin-bottom:6px}.at-input[data-v-5c7bc541]{flex:1;min-width:0;padding:6px 10px;border:1px solid rgba(148,163,184,.4);border-radius:6px;font-size:12px;background:#fff;transition:border-color .2s,box-shadow .2s}.at-input[data-v-5c7bc541]:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.send-btn[data-v-5c7bc541]{padding:6px 12px;border:none;border-radius:6px;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);color:#fff;font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;box-shadow:0 2px 4px #4f46e54d;transition:transform .15s,box-shadow .15s}.send-btn[data-v-5c7bc541]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #4f46e566}.send-btn[data-v-5c7bc541]:disabled{background:linear-gradient(135deg,#cbd5e1 0%,#94a3b8 100%);box-shadow:none;cursor:not-allowed}.at-sent[data-v-5c7bc541]{font-size:11px;color:#64748b;margin-bottom:4px}.at-sent code[data-v-5c7bc541]{color:#4f46e5;font-size:11px;font-weight:600;padding:0 4px;background:rgba(99,102,241,.1);border-radius:4px}.at-response[data-v-5c7bc541]{font-size:11px;padding:8px 10px;background:rgba(15,23,42,.03);border-radius:6px;border:1px solid rgba(148,163,184,.2);max-height:80px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;color:#334155}.at-response-empty[data-v-5c7bc541]{color:#94a3b8;font-style:italic}.at-modal[data-v-5c7bc541]{position:fixed;inset:0;background:rgba(15,23,42,.4);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1200}.at-modal-box[data-v-5c7bc541]{width:min(860px,calc(100vw - 40px));max-height:calc(100vh - 64px);overflow:auto;background:#fff;border-radius:12px;padding:18px;box-shadow:0 20px 50px #00000040}.at-modal-header[data-v-5c7bc541]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.at-modal-title[data-v-5c7bc541]{font-size:16px;font-weight:700;color:#1f2937}.at-modal-close[data-v-5c7bc541]{border:none;border-radius:6px;padding:6px 10px;background:#e5e7eb;color:#334155;font-size:12px;cursor:pointer}.at-modal-response[data-v-5c7bc541]{min-height:240px;max-height:50vh;font-size:13px}.mine-readonly-banner[data-v-de5a66a2]{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:baseline;padding:10px 14px;margin:0 0 12px;background:#fff7ed;border:1px solid #fdba74;border-radius:8px;color:#9a3412;font-size:13px;line-height:1.5}.mine-readonly-banner strong[data-v-de5a66a2]{flex-shrink:0}.page-view[data-v-0d680f13]{padding:20px}.mine-at-hint[data-v-0d680f13]{margin:0 0 12px;padding:10px 14px;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;color:#92400e;font-size:13px;line-height:1.5}.page-header[data-v-0d680f13]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h1[data-v-0d680f13]{font-size:18px;margin:0}.device-grid[data-v-0d680f13]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.empty-tip[data-v-0d680f13]{color:#999;margin-top:20px}.device-group-title[data-v-0d680f13]{font-size:16px;margin-bottom:6px;margin-top:12px}.tabs[data-v-0d680f13]{display:inline-flex;gap:8px;margin-bottom:16px;border-radius:999px;padding:4px;background:#e5e7eb}.tab-btn[data-v-0d680f13]{border:none;background:transparent;padding:6px 16px;border-radius:999px;font-size:13px;cursor:pointer;color:#4b5563}.tab-btn.active[data-v-0d680f13]{background:#ffffff;color:#111827;box-shadow:0 1px 3px #0000001f}.at-shortcuts-panel[data-v-0d680f13]{margin-top:8px}.crud-tab .toolbar[data-v-0d680f13]{margin-bottom:12px;display:flex;gap:8px;align-items:center}.crud-tab .table[data-v-0d680f13]{width:100%;border-collapse:collapse;font-size:13px;min-width:760px}.crud-tab .table th[data-v-0d680f13],.crud-tab .table td[data-v-0d680f13]{border:1px solid #e5e7f0;padding:8px;text-align:left}.crud-tab .table th[data-v-0d680f13]{background:#f8fafc;color:#334155;font-weight:600}.btn[data-v-0d680f13]{padding:8px 16px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}.btn-cancel[data-v-0d680f13]{background:#e2e8f0;color:#334155}.toolbar-tip[data-v-0d680f13]{font-size:12px;color:#6b7280}.btn-action[data-v-0d680f13]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action-edit[data-v-0d680f13]{background:#e0f2f1;color:#0d9488}.btn-action-danger[data-v-0d680f13]{background:#fee2e2;color:#dc2626;margin-left:4px}.loading-cell[data-v-0d680f13],.empty-cell[data-v-0d680f13]{text-align:center;color:#6b7280;font-size:13px}.modal[data-v-0d680f13]{position:fixed;inset:0;background:rgba(15,23,42,.35);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-box.at-modal-box[data-v-0d680f13]{background:#fff;padding:24px;border-radius:12px;min-width:520px;max-width:720px;width:92vw;box-shadow:0 20px 50px #0000002e}.modal-box h3[data-v-0d680f13]{margin:0 0 16px;font-size:16px}.form-row[data-v-0d680f13]{display:flex;gap:12px;margin-bottom:10px}.field[data-v-0d680f13]{flex:1}.field-full[data-v-0d680f13]{flex:1 1 100%}.field label[data-v-0d680f13]{display:block;margin-bottom:4px;font-size:12px;color:#4b5563}.field .required[data-v-0d680f13]{color:#ef4444;margin-left:4px}.field input[data-v-0d680f13]{width:100%;box-sizing:border-box;padding:8px 10px;border-radius:6px;border:1px solid #d1d5db;font-size:13px}.modal-actions[data-v-0d680f13]{margin-top:16px;display:flex;gap:8px}.page-view[data-v-de1c60a4]{padding:20px}.page-header[data-v-de1c60a4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.page-header h1[data-v-de1c60a4]{font-size:18px;margin:0}.controls[data-v-de1c60a4]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.form-select[data-v-de1c60a4]{padding:6px 10px;border-radius:6px;border:1px solid #e2e8f0;font-size:13px;min-width:140px}.form-select[data-v-de1c60a4]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d94881f}.data-table[data-v-de1c60a4]{width:100%;border-collapse:collapse;background:#fff}.data-table th[data-v-de1c60a4],.data-table td[data-v-de1c60a4]{border:1px solid #ddd;padding:8px 10px;text-align:center;white-space:nowrap}.data-table th[data-v-de1c60a4]{background:#e8eaf6}.empty-tip[data-v-de1c60a4]{padding:40px 0;text-align:center;color:#64748b}.report-view[data-v-d1520104]{min-height:500px;display:flex;flex-direction:column;padding:0 20px 24px}.report-header[data-v-d1520104]{padding:16px 24px;background:#fff;color:#0f172a;border-bottom:1px solid #e2e8f0}.report-header h1[data-v-d1520104]{margin:0;font-size:18px;font-weight:600}@media (max-width: 768px){.report-view[data-v-d1520104]{padding:0 12px 16px}.report-header[data-v-d1520104]{padding:12px 16px}.report-header h1[data-v-d1520104]{font-size:16px}.report-form-row[data-v-d1520104]{padding:12px 16px;gap:10px}.station-select[data-v-d1520104]{flex-direction:column;align-items:flex-start}.station-chips[data-v-d1520104]{max-width:100%}.report-form[data-v-d1520104]{flex-direction:column;align-items:stretch}.chart-wrap[data-v-d1520104]{margin-bottom:16px}.chart-toolbar[data-v-d1520104]{top:4px;right:8px;flex-wrap:wrap;gap:4px}.chart-btn[data-v-d1520104]{padding:4px 10px;font-size:11px}.chart[data-v-d1520104]{min-height:260px!important}.data-table[data-v-d1520104]{font-size:11px}.data-table th[data-v-d1520104],.data-table td[data-v-d1520104]{padding:6px 8px}}.report-form-row[data-v-d1520104]{padding:16px 24px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column;gap:14px}.station-select[data-v-d1520104]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.station-label[data-v-d1520104]{font-size:13px;color:#64748b}.station-chips[data-v-d1520104]{display:flex;flex-wrap:wrap;gap:8px}.station-chip[data-v-d1520104]{padding:6px 14px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;color:#475569;font-size:13px;cursor:pointer;transition:all .2s}.station-chip[data-v-d1520104]:hover{border-color:#0d9488;color:#0d9488}.station-chip.active[data-v-d1520104]{background:#0d9488;border-color:#0d9488;color:#fff;box-shadow:0 2px 8px #0d94884d}.station-chip-all[data-v-d1520104]{font-weight:500}.report-form[data-v-d1520104]{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.form-label[data-v-d1520104]{font-size:13px;color:#64748b}.form-select[data-v-d1520104],.form-input[data-v-d1520104]{padding:7px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;background:#fff}.form-select-year[data-v-d1520104]{min-width:90px}.btn-print[data-v-d1520104]{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:#334155;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-print[data-v-d1520104]:hover{background:#1e293b;box-shadow:0 2px 8px #3341554d}.btn-print[data-v-d1520104]:active{transform:translateY(0)}.data-table-wrap[data-v-d1520104]{margin:16px 0}.data-table[data-v-d1520104]{width:100%;border-collapse:collapse;border:1px solid #e2e8f0;font-size:13px}.data-table th[data-v-d1520104],.data-table td[data-v-d1520104]{border:1px solid #e2e8f0;padding:8px 10px;text-align:center}.data-table th[data-v-d1520104]{background:#f1f5f9;font-weight:600}.data-table td.station-name[data-v-d1520104]{text-align:left;font-weight:500;min-width:100px}.data-table tbody tr[data-v-d1520104]:nth-child(2n){background:#fafafa}.chart-wrap[data-v-d1520104]{position:relative;margin-bottom:24px}.chart-toolbar[data-v-d1520104]{position:absolute;top:8px;right:16px;z-index:10;display:flex;gap:6px}.chart-btn[data-v-d1520104]{padding:5px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;font-size:12px;cursor:pointer;transition:all .2s}.chart-btn[data-v-d1520104]:hover{border-color:#0d9488;color:#0d9488}.chart-btn.active[data-v-d1520104]{background:#0d9488;border-color:#0d9488;color:#fff}.chart-btn-download[data-v-d1520104]{margin-left:4px}.chart[data-v-d1520104]{min-height:380px}.analysis-section[data-v-d1520104]{margin-top:24px;display:flex;justify-content:center}.analysis-inner[data-v-d1520104]{width:100%;max-width:720px;display:flex;flex-direction:column;gap:12px}.analysis-label[data-v-d1520104]{font-weight:600;font-size:15px;color:#334155}.analysis-history[data-v-d1520104]{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.analysis-item[data-v-d1520104]{display:flex;align-items:flex-start;gap:6px;font-size:14px}.analysis-author[data-v-d1520104]{color:#0d9488;font-weight:500;flex-shrink:0}.analysis-time[data-v-d1520104]{font-weight:400;color:#94a3b8;margin-left:2px}.analysis-content[data-v-d1520104]{flex:1;color:#475569;white-space:pre-wrap;word-break:break-word}.analysis-delete[data-v-d1520104]{flex-shrink:0;width:24px;height:24px;padding:0;border:none;background:#fef2f2;color:#dc2626;font-size:18px;line-height:1;border-radius:4px;cursor:pointer;opacity:.8}.analysis-delete[data-v-d1520104]:hover{opacity:1;background:#fecaca}.analysis-input-row[data-v-d1520104]{display:flex;flex-direction:column;gap:10px}.analysis-textarea[data-v-d1520104]{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;resize:vertical;min-height:100px}.analysis-textarea[data-v-d1520104]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.btn-save[data-v-d1520104]{align-self:flex-end;padding:10px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-save[data-v-d1520104]:hover:not(:disabled){background:#0f766e;box-shadow:0 2px 8px #0d94884d}.btn-save[data-v-d1520104]:disabled{opacity:.6;cursor:not-allowed}.report-view[data-v-be07d51f]{min-height:500px;display:flex;flex-direction:column;padding:0 20px 24px}.report-header[data-v-be07d51f]{padding:16px 24px;background:#fff;color:#0f172a;border-bottom:1px solid #e2e8f0}.report-header h1[data-v-be07d51f]{margin:0;font-size:18px;font-weight:600}.report-form-row[data-v-be07d51f]{padding:16px 24px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column;gap:14px}.station-select[data-v-be07d51f]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.station-label[data-v-be07d51f]{font-size:13px;color:#64748b}.station-chips[data-v-be07d51f]{display:flex;flex-wrap:wrap;gap:8px}.station-chip[data-v-be07d51f]{padding:6px 14px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;color:#475569;font-size:13px;cursor:pointer;transition:all .2s}.station-chip[data-v-be07d51f]:hover{border-color:#0d9488;color:#0d9488}.station-chip.active[data-v-be07d51f]{background:#0d9488;border-color:#0d9488;color:#fff;box-shadow:0 2px 8px #0d94884d}.station-chip-all[data-v-be07d51f]{font-weight:500}.report-form[data-v-be07d51f]{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.raw-range-hint[data-v-be07d51f]{margin:0;font-size:12px;color:#b45309;line-height:1.5}.form-label[data-v-be07d51f]{font-size:13px;color:#64748b}.form-select[data-v-be07d51f],.form-input[data-v-be07d51f]{padding:7px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;background:#fff}.btn-print[data-v-be07d51f]{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:#334155;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-print[data-v-be07d51f]:hover{background:#1e293b;box-shadow:0 2px 8px #3341554d}.chart-wrap[data-v-be07d51f]{position:relative;margin:16px 0 24px}.chart-toolbar[data-v-be07d51f]{position:absolute;top:8px;right:16px;z-index:10;display:flex;gap:6px}.chart-btn[data-v-be07d51f]{padding:5px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;font-size:12px;cursor:pointer;transition:all .2s}.chart-btn[data-v-be07d51f]:hover{border-color:#0d9488;color:#0d9488}.chart-btn.active[data-v-be07d51f]{background:#0d9488;border-color:#0d9488;color:#fff}.chart-btn-download[data-v-be07d51f]{margin-left:4px}.chart[data-v-be07d51f]{min-height:380px}.analysis-section[data-v-be07d51f]{margin-top:24px;display:flex;justify-content:center}.analysis-inner[data-v-be07d51f]{width:100%;max-width:720px;display:flex;flex-direction:column;gap:12px}.analysis-label[data-v-be07d51f]{font-weight:600;font-size:15px;color:#334155}.analysis-history[data-v-be07d51f]{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.analysis-item[data-v-be07d51f]{display:flex;align-items:flex-start;gap:6px;font-size:14px}.analysis-author[data-v-be07d51f]{color:#0d9488;font-weight:500;flex-shrink:0}.analysis-time[data-v-be07d51f]{font-weight:400;color:#94a3b8;margin-left:2px}.analysis-content[data-v-be07d51f]{flex:1;color:#475569;white-space:pre-wrap;word-break:break-word}.analysis-delete[data-v-be07d51f]{flex-shrink:0;width:24px;height:24px;padding:0;border:none;background:#fef2f2;color:#dc2626;font-size:18px;line-height:1;border-radius:4px;cursor:pointer;opacity:.8}.analysis-delete[data-v-be07d51f]:hover{opacity:1;background:#fecaca}.analysis-input-row[data-v-be07d51f]{display:flex;flex-direction:column;gap:10px}.analysis-textarea[data-v-be07d51f]{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;resize:vertical;min-height:100px}.analysis-textarea[data-v-be07d51f]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.btn-save[data-v-be07d51f]{align-self:flex-end;padding:10px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-save[data-v-be07d51f]:hover:not(:disabled){background:#0f766e;box-shadow:0 2px 8px #0d94884d}.btn-save[data-v-be07d51f]:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.report-view[data-v-be07d51f]{padding:0 12px 16px}.report-header[data-v-be07d51f]{padding:12px 16px}.report-header h1[data-v-be07d51f]{font-size:16px}.report-form-row[data-v-be07d51f]{padding:12px 16px;gap:10px}.station-select[data-v-be07d51f]{flex-direction:column;align-items:flex-start}.station-chips[data-v-be07d51f]{max-width:100%}.report-form[data-v-be07d51f]{flex-direction:column;align-items:stretch}.chart-wrap[data-v-be07d51f]{margin-bottom:16px}.chart-toolbar[data-v-be07d51f]{top:4px;right:8px;flex-wrap:wrap;gap:4px}.chart-btn[data-v-be07d51f]{padding:4px 10px;font-size:11px}.chart[data-v-be07d51f]{min-height:260px!important}}.crud-tab .toolbar[data-v-e95414aa]{margin-bottom:12px;display:flex;gap:8px;align-items:center}.crud-tab .table[data-v-e95414aa]{width:100%;border-collapse:collapse;font-size:14px}.crud-tab .table th[data-v-e95414aa],.crud-tab .table td[data-v-e95414aa]{border:1px solid #e2e8f0;padding:10px;text-align:left}.crud-tab .table th[data-v-e95414aa]{background:#f8fafc;color:#334155;font-weight:600}.btn[data-v-e95414aa]{padding:8px 14px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}.modal[data-v-e95414aa]{position:fixed;inset:0;background:rgba(15,23,42,.35);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-box[data-v-e95414aa]{background:#fff;padding:24px;border-radius:12px;min-width:640px;max-width:860px;width:92vw;box-shadow:0 20px 50px #0000002e}.modal-box h3[data-v-e95414aa]{margin:0 0 16px}.form .field[data-v-e95414aa]{margin-bottom:12px}.form label[data-v-e95414aa]{display:block;margin-bottom:8px;font-size:13px;color:#334155;font-weight:600}.form input[data-v-e95414aa],.form select[data-v-e95414aa]{width:100%;padding:10px 12px;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px}.form-input-custom[data-v-e95414aa]{margin-top:8px}.field-hint[data-v-e95414aa]{display:block;margin-top:4px;font-size:12px;color:#64748b}.modal-actions[data-v-e95414aa]{margin-top:16px;display:flex;gap:8px}.modal-actions .btn[data-v-e95414aa]:last-child{background:#e2e8f0;color:#334155}.btn-action[data-v-e95414aa]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action+.btn-action[data-v-e95414aa]{margin-left:4px}.btn-action-edit[data-v-e95414aa]{background:#e0f2f1;color:#0d9488}.btn-action-warn[data-v-e95414aa]{background:#fef3c7;color:#b45309}.btn-action-danger[data-v-e95414aa]{background:#fee2e2;color:#dc2626}.crud-tab .toolbar[data-v-5f6e7a16]{margin-bottom:12px;display:flex;gap:8px;align-items:center}.crud-tab .table[data-v-5f6e7a16]{width:100%;border-collapse:collapse;font-size:13px;min-width:800px}.crud-tab .table th[data-v-5f6e7a16],.crud-tab .table td[data-v-5f6e7a16]{border:1px solid #ddd;padding:8px;text-align:left}.crud-tab .table th[data-v-5f6e7a16]{background:#f5f5f5}.btn[data-v-5f6e7a16]{padding:8px 16px;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500}.btn-primary[data-v-5f6e7a16]{background:#0d9488;color:#fff}.btn-primary[data-v-5f6e7a16]:hover{background:#0f766e}.btn-secondary[data-v-5f6e7a16]{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn-secondary[data-v-5f6e7a16]:hover{background:#e2e8f0}.modal[data-v-5f6e7a16]{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:100}.station-modal[data-v-5f6e7a16]{background:#fff;padding:24px;border-radius:10px;box-shadow:0 10px 40px #00000026;max-width:560px;width:90%;max-height:90vh;display:flex;flex-direction:column}.station-modal h3[data-v-5f6e7a16]{margin:0 0 16px;font-size:18px;font-weight:600;color:#0f172a}.form-scroll[data-v-5f6e7a16]{overflow-y:auto;flex:1;padding-right:8px;margin:0 -4px}.form-section[data-v-5f6e7a16]{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.form-section[data-v-5f6e7a16]:last-of-type{border-bottom:none;margin-bottom:0}.form-section h4[data-v-5f6e7a16]{margin:0 0 12px;font-size:14px;font-weight:600;color:#334155}.field-hint[data-v-5f6e7a16]{margin:0 0 12px;font-size:12px;color:#64748b;line-height:1.45}.field-note[data-v-5f6e7a16]{margin-top:6px;font-size:12px;color:#64748b;line-height:1.45}.form-grid[data-v-5f6e7a16]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 20px}.form-grid .field.col-span-2[data-v-5f6e7a16]{grid-column:span 2}.form-grid .field label[data-v-5f6e7a16]{display:block;margin-bottom:6px;font-size:12px;color:#64748b;font-weight:500}.form-grid .field input[data-v-5f6e7a16],.form-grid .field select[data-v-5f6e7a16]{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.form-grid .field input[data-v-5f6e7a16]:focus,.form-grid .field select[data-v-5f6e7a16]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.form-grid .field input.input-readonly[data-v-5f6e7a16]{background:#f8fafc;color:#475569;cursor:not-allowed}.form-grid .field select[data-v-5f6e7a16]:disabled{background:#f8fafc;color:#64748b;cursor:not-allowed}.type-radio-group[data-v-5f6e7a16]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:4px}.type-radio-item[data-v-5f6e7a16]{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #dbe3ea;border-radius:10px;background:#f8fafc;color:#334155;font-size:13px;font-weight:500;cursor:pointer;user-select:none;transition:all .15s ease}.type-radio-item[data-v-5f6e7a16]:hover{border-color:#9dd9d3;background:#f0fdfa}.type-radio-item input[data-v-5f6e7a16]{display:none}.type-radio-item.active[data-v-5f6e7a16]{border-color:#0d9488;background:#e6fffb;color:#0f766e;box-shadow:inset 0 0 0 1px #0d948840}.field-hint[data-v-5f6e7a16]{margin-top:4px;font-size:11px;color:#f97316}.code-parts[data-v-5f6e7a16]{display:grid;grid-template-columns:1.6fr .9fr .9fr 1fr 1fr;gap:8px}.code-parts input[data-v-5f6e7a16]{min-width:0}.modal-actions[data-v-5f6e7a16]{margin-top:16px;display:flex;gap:8px;flex-shrink:0}.btn-action[data-v-5f6e7a16]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action+.btn-action[data-v-5f6e7a16]{margin-left:4px}.btn-action-edit[data-v-5f6e7a16]{background:#e0f2f1;color:#0d9488}.btn-action-warn[data-v-5f6e7a16]{background:#fef3c7;color:#b45309}.btn-action-maint[data-v-5f6e7a16]{background:#fff7ed;color:#c2410c}.btn-action-danger[data-v-5f6e7a16]{background:#fee2e2;color:#dc2626}@media (max-width: 960px){.code-parts[data-v-5f6e7a16]{grid-template-columns:1fr 1fr}}.crud-tab .toolbar[data-v-c5b384fe]{margin-bottom:12px}.table[data-v-c5b384fe]{width:100%;border-collapse:collapse;font-size:13px;min-width:900px}.table th[data-v-c5b384fe],.table td[data-v-c5b384fe]{border:1px solid #ddd;padding:8px}.form-section[data-v-c5b384fe]{margin-bottom:16px}.form-section h4[data-v-c5b384fe]{margin:0 0 8px;font-size:13px;color:#555}.form-row[data-v-c5b384fe]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.form-row .field[data-v-c5b384fe]{min-width:140px;flex:1}.form .field label[data-v-c5b384fe]{display:block;margin-bottom:4px;font-size:12px}.form input[data-v-c5b384fe]{width:100%;padding:8px;box-sizing:border-box}.modal[data-v-c5b384fe]{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:100;overflow-y:auto;padding:16px}.modal-box[data-v-c5b384fe]{background:#fff;padding:20px;border-radius:8px;max-width:720px;width:100%;max-height:90vh;overflow-y:auto}.form-hint[data-v-c5b384fe]{margin:0 0 10px;font-size:12px;color:#64748b;line-height:1.45}.modal-actions[data-v-c5b384fe]{margin-top:16px;display:flex;gap:8px}.btn[data-v-c5b384fe]{padding:8px 16px;background:#0d9488;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-cancel[data-v-c5b384fe]{background:#94a3b8}.btn-action[data-v-c5b384fe]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action+.btn-action[data-v-c5b384fe]{margin-left:4px}.btn-action-edit[data-v-c5b384fe]{background:#e0f2f1;color:#0d9488}.btn-action-danger[data-v-c5b384fe]{background:#fee2e2;color:#dc2626}.warn-tpl[data-v-6f8d7a46]{--teal: #0d9488;--slate: #334155;--muted: #64748b;--border: #e2e8f0;--bg-soft: #f8fafc}.toolbar[data-v-6f8d7a46]{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.btn-secondary[data-v-6f8d7a46]{padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--slate);font-weight:600;cursor:pointer}.btn-secondary[data-v-6f8d7a46]:disabled{opacity:.55;cursor:not-allowed}.hint[data-v-6f8d7a46]{font-size:13px;color:var(--muted);margin:0 0 12px;line-height:1.55;max-width:1100px}.hint code[data-v-6f8d7a46]{font-size:12px;background:#f1f5f9;padding:1px 6px;border-radius:4px}.table[data-v-6f8d7a46]{width:100%;border-collapse:collapse;font-size:14px}.table th[data-v-6f8d7a46],.table td[data-v-6f8d7a46]{border:1px solid var(--border);padding:10px}.table th[data-v-6f8d7a46]{background:var(--bg-soft);color:var(--slate);font-weight:600}.ellipsis[data-v-6f8d7a46]{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal[data-v-6f8d7a46]{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100}.editor-shell[data-v-6f8d7a46]{background:linear-gradient(160deg,#fff 0%,#f8fafc 100%);padding:0;border-radius:16px;min-width:720px;max-width:1180px;width:96vw;max-height:92vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px #0003}.editor-head[data-v-6f8d7a46]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:rgba(13,148,136,.06)}.editor-head h3[data-v-6f8d7a46]{margin:0;font-size:18px;color:#0f172a}.icon-close[data-v-6f8d7a46]{border:none;background:transparent;font-size:26px;line-height:1;cursor:pointer;color:var(--muted)}.editor-grid[data-v-6f8d7a46]{display:grid;grid-template-columns:1fr 380px;gap:0;min-height:420px;max-height:calc(92vh - 64px)}.col-left[data-v-6f8d7a46]{padding:20px;overflow-y:auto;border-right:1px solid var(--border)}.col-right[data-v-6f8d7a46]{display:flex;flex-direction:column;background:#f1f5f9;min-height:0}.field[data-v-6f8d7a46]{margin-bottom:14px}.field label[data-v-6f8d7a46]{display:block;margin-bottom:6px;font-size:13px;color:var(--slate);font-weight:600}.sub[data-v-6f8d7a46]{font-weight:400;color:var(--muted);font-size:12px}.inp[data-v-6f8d7a46]{width:100%;padding:10px 12px;box-sizing:border-box;border:1px solid var(--border);border-radius:8px;font-size:14px}.inp.sm[data-v-6f8d7a46]{width:100%}.textarea[data-v-6f8d7a46]{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid #cbd5e1;border-radius:10px;font-size:14px;line-height:1.5;resize:vertical;min-height:200px;font-family:ui-monospace,monospace;background:#fff}.body-ta[data-v-6f8d7a46]:focus{outline:2px solid rgba(13,148,136,.35);border-color:var(--teal)}.panel[data-v-6f8d7a46]{padding:14px;overflow-y:auto}.preview-panel[data-v-6f8d7a46]{flex:0 0 auto;border-bottom:1px solid var(--border);background:#fff}.chips-panel[data-v-6f8d7a46]{flex:1 1 auto;min-height:0}.panel-title[data-v-6f8d7a46]{font-size:13px;font-weight:700;color:#0f172a;margin-bottom:10px;letter-spacing:.02em}.preview-meta[data-v-6f8d7a46]{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center;margin-bottom:10px;font-size:12px;color:var(--muted)}.preview-meta label[data-v-6f8d7a46]{font-weight:600;color:var(--slate)}.preview-body[data-v-6f8d7a46]{margin:0;padding:12px;background:#0f172a;color:#e2e8f0;border-radius:10px;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;min-height:100px}.chip-grid[data-v-6f8d7a46]{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto;padding-right:4px}.chip[data-v-6f8d7a46]{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;cursor:grab;transition:border-color .15s,box-shadow .15s}.chip[data-v-6f8d7a46]:active{cursor:grabbing}.chip[data-v-6f8d7a46]:hover{border-color:var(--teal);box-shadow:0 2px 8px #0d948826}.chip-label[data-v-6f8d7a46]{font-size:12px;color:var(--slate);font-weight:600}.chip-code[data-v-6f8d7a46]{font-size:11px;color:#0369a1}.modal-actions[data-v-6f8d7a46]{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px}.btn[data-v-6f8d7a46]{padding:8px 14px;background:var(--teal);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}.btn[data-v-6f8d7a46]:disabled{opacity:.55;cursor:wait}.btn-primary-solid[data-v-6f8d7a46]{background:#0f766e}.btn.ghost[data-v-6f8d7a46]{background:#e2e8f0;color:var(--slate)}.btn-action[data-v-6f8d7a46]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action-edit[data-v-6f8d7a46]{background:#e0f2f1;color:var(--teal)}@media (max-width: 960px){.editor-grid[data-v-6f8d7a46]{grid-template-columns:1fr}.col-left[data-v-6f8d7a46]{border-right:none;border-bottom:1px solid var(--border)}}.crud-tab .toolbar[data-v-388dc2d2]{margin-bottom:12px;display:flex;gap:8px}.table[data-v-388dc2d2]{width:100%;border-collapse:collapse;font-size:14px}.table th[data-v-388dc2d2],.table td[data-v-388dc2d2]{border:1px solid #e2e8f0;padding:10px}.table th[data-v-388dc2d2]{background:#f8fafc;color:#334155;font-weight:600}.modal[data-v-388dc2d2]{position:fixed;inset:0;background:rgba(15,23,42,.35);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-box[data-v-388dc2d2]{background:#fff;padding:24px;border-radius:12px;min-width:640px;max-width:860px;width:92vw;box-shadow:0 20px 50px #0000002e}.form .field[data-v-388dc2d2]{margin-bottom:12px}.form label[data-v-388dc2d2]{display:block;margin-bottom:8px;color:#334155;font-size:13px;font-weight:600}.form input[data-v-388dc2d2],.form select[data-v-388dc2d2]{width:100%;padding:10px 12px;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px}.modal-actions[data-v-388dc2d2]{margin-top:16px;display:flex;gap:8px}.btn[data-v-388dc2d2]{padding:8px 14px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}.modal-actions .btn[data-v-388dc2d2]:last-child{background:#e2e8f0;color:#334155}.btn-action[data-v-388dc2d2]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action+.btn-action[data-v-388dc2d2]{margin-left:4px}.btn-action-edit[data-v-388dc2d2]{background:#e0f2f1;color:#0d9488}.btn-action-danger[data-v-388dc2d2]{background:#fee2e2;color:#dc2626}.tip[data-v-62e3be3f]{color:#666;margin-bottom:16px}.backup-buttons[data-v-62e3be3f]{display:flex;gap:12px;flex-wrap:wrap}.btn[data-v-62e3be3f]{padding:10px 20px;background:#0d9488;color:#fff;border:none;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.btn[data-v-62e3be3f]:disabled{opacity:.6;cursor:not-allowed}.spinner[data-v-62e3be3f]{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin-62e3be3f .8s linear infinite}@keyframes spin-62e3be3f{to{transform:rotate(360deg)}}.deploy-hint[data-v-e14bc0a4]{margin-bottom:14px;padding:10px 14px;border-radius:8px;border:1px solid #bae6fd;background:#f0f9ff;color:#0c4a6e;font-size:13px;line-height:1.55}.deploy-hint-main[data-v-e14bc0a4]{margin:0}.deploy-hint-sub[data-v-e14bc0a4]{margin:8px 0 0;color:#0369a1;font-size:12px}.crud-tab .tip[data-v-e14bc0a4]{color:#64748b;margin-bottom:16px;line-height:1.6;font-size:13px}.crud-tab .tip code[data-v-e14bc0a4]{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-size:12px}.src[data-v-e14bc0a4]{margin-left:8px;color:#0d9488}.toolbar[data-v-e14bc0a4]{margin-bottom:16px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.sub-tabs[data-v-e14bc0a4]{display:inline-flex;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;margin-bottom:14px}.sub-tab[data-v-e14bc0a4]{border:none;background:#fff;padding:8px 14px;font-size:13px;color:#334155;cursor:pointer}.sub-tab.active[data-v-e14bc0a4]{background:#0d9488;color:#fff}.btn[data-v-e14bc0a4]{padding:8px 14px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}.btn[data-v-e14bc0a4]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-e14bc0a4]{background:#e2e8f0;color:#334155}.btn-highlight[data-v-e14bc0a4]{box-shadow:0 0 0 3px #0d94882e}.unsaved-tip[data-v-e14bc0a4]{margin:-4px 0 14px;padding:8px 12px;border-radius:8px;background:#fffbeb;color:#92400e;border:1px solid #fde68a;font-size:13px}.form-grid[data-v-e14bc0a4]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.switch-groups[data-v-e14bc0a4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:12px}.switch-group[data-v-e14bc0a4]{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:10px 12px}.switch-group-title[data-v-e14bc0a4]{font-size:13px;color:#0f172a;font-weight:700;margin-bottom:4px}.switch-group-desc[data-v-e14bc0a4]{font-size:12px;color:#64748b;line-height:1.4;margin-bottom:8px}.field label[data-v-e14bc0a4],.switch-field[data-v-e14bc0a4]{display:block;font-size:13px;color:#334155;font-weight:600;margin-bottom:6px}.field input[data-v-e14bc0a4]{width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box}.switch-field[data-v-e14bc0a4]{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}.switch-label[data-v-e14bc0a4]{line-height:1.2}.switch-control[data-v-e14bc0a4]{position:relative;display:inline-flex}.switch-input[data-v-e14bc0a4]{position:absolute;opacity:0;width:0;height:0}.switch-slider[data-v-e14bc0a4]{width:44px;height:24px;border-radius:999px;background:#cbd5e1;position:relative;transition:background-color .2s ease}.switch-slider[data-v-e14bc0a4]:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s ease}.switch-input:checked+.switch-slider[data-v-e14bc0a4]{background:#0d9488}.switch-input:checked+.switch-slider[data-v-e14bc0a4]:after{transform:translate(20px)}.switch-input:focus-visible+.switch-slider[data-v-e14bc0a4]{box-shadow:0 0 0 3px #0d948833}.sub-title[data-v-e14bc0a4]{margin:20px 0 10px;font-size:14px;color:#334155}.targets[data-v-e14bc0a4]{margin-bottom:16px}.target-row[data-v-e14bc0a4]{display:grid;grid-template-columns:1.2fr 80px 1fr 1fr 1fr auto;gap:8px;align-items:center;margin-bottom:8px}.target-row input[data-v-e14bc0a4]{padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px}.target-row .port[data-v-e14bc0a4]{max-width:90px}.btn-mini[data-v-e14bc0a4]{padding:6px 10px;font-size:12px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;color:#334155}.btn-mini.danger[data-v-e14bc0a4]{color:#dc2626;border-color:#fecaca}.table[data-v-e14bc0a4]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-e14bc0a4],.table td[data-v-e14bc0a4]{border:1px solid #e2e8f0;padding:8px 10px;text-align:left}.table th[data-v-e14bc0a4]{background:#f8fafc;color:#334155;font-weight:600}.msg-cell[data-v-e14bc0a4]{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill[data-v-e14bc0a4]{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.s-ok[data-v-e14bc0a4]{background:#dcfce7;color:#166534}.s-skip[data-v-e14bc0a4]{background:#e2e8f0;color:#475569}.s-warn[data-v-e14bc0a4]{background:#fef3c7;color:#b45309}.s-err[data-v-e14bc0a4]{background:#fee2e2;color:#b91c1c}.log-toolbar[data-v-e14bc0a4]{margin-bottom:8px;font-size:12px;color:#64748b}.pager[data-v-e14bc0a4]{margin-top:12px;display:flex;gap:12px;align-items:center;font-size:13px}@media (max-width: 900px){.target-row[data-v-e14bc0a4]{grid-template-columns:1fr}}.crud-tab .hint[data-v-6d000c55]{margin:0 0 12px;padding:10px 12px;background:#f0fdfa;border:1px solid #99f6e4;border-radius:8px;color:#0f766e;font-size:13px;line-height:1.5}.crud-tab .toolbar[data-v-6d000c55]{margin-bottom:12px}.table[data-v-6d000c55]{width:100%;border-collapse:collapse;font-size:14px}.table th[data-v-6d000c55],.table td[data-v-6d000c55]{border:1px solid #e2e8f0;padding:10px}.table th[data-v-6d000c55]{background:#f8fafc;color:#334155;font-weight:600}.modal[data-v-6d000c55]{position:fixed;inset:0;background:rgba(15,23,42,.35);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-box[data-v-6d000c55]{background:#fff;padding:24px;border-radius:12px;min-width:480px;max-width:640px;width:92vw;box-shadow:0 20px 50px #0000002e}.form .field[data-v-6d000c55]{margin-bottom:12px}.form label[data-v-6d000c55]{display:block;margin-bottom:8px;font-size:13px;color:#334155;font-weight:600}.form input[data-v-6d000c55],.form select[data-v-6d000c55]{width:100%;padding:10px 12px;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px}.readonly-input[data-v-6d000c55]{background:#f8fafc;color:#64748b}.modal-actions[data-v-6d000c55]{margin-top:16px;display:flex;gap:8px}.btn[data-v-6d000c55]{padding:8px 14px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}.modal-actions .btn[data-v-6d000c55]:last-child{background:#e2e8f0;color:#334155}.btn-action[data-v-6d000c55]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action+.btn-action[data-v-6d000c55]{margin-left:4px}.btn-action-edit[data-v-6d000c55]{background:#e0f2f1;color:#0d9488}.btn-action-danger[data-v-6d000c55]{background:#fee2e2;color:#dc2626}.sys-manage[data-v-305566fa]{padding:16px}.tabs[data-v-305566fa]{display:flex;gap:4px;margin-bottom:16px;flex-wrap:wrap}.tab[data-v-305566fa]{padding:8px 14px;background:#f0f0f0;color:#333;text-decoration:none;border-radius:6px;font-size:13px}.tab[data-v-305566fa]:hover{background:#e0e0e0}.tab.active[data-v-305566fa]{background:#0d9488;color:#fff}.content[data-v-305566fa]{background:#fff;padding:16px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.tip[data-v-305566fa]{color:#999;padding:20px}.crud-tab .toolbar[data-v-310b26e3]{margin-bottom:12px}.table[data-v-310b26e3]{width:100%;border-collapse:collapse;font-size:14px}.table th[data-v-310b26e3],.table td[data-v-310b26e3]{border:1px solid #e2e8f0;padding:10px}.table th[data-v-310b26e3]{background:#f8fafc;color:#334155;font-weight:600}.modal[data-v-310b26e3]{position:fixed;inset:0;background:rgba(15,23,42,.35);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-box[data-v-310b26e3]{background:#fff;padding:24px;border-radius:12px;min-width:640px;max-width:860px;width:92vw;box-shadow:0 20px 50px #0000002e}.form .field[data-v-310b26e3]{margin-bottom:12px}.form label[data-v-310b26e3]{display:block;margin-bottom:8px;font-size:13px;color:#334155;font-weight:600}.form input[data-v-310b26e3]{width:100%;padding:10px 12px;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px}.modal-actions[data-v-310b26e3]{margin-top:16px;display:flex;gap:8px}.btn[data-v-310b26e3]{padding:8px 14px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}.modal-actions .btn[data-v-310b26e3]:last-child{background:#e2e8f0;color:#334155}.btn-action[data-v-310b26e3]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action+.btn-action[data-v-310b26e3]{margin-left:4px}.btn-action-edit[data-v-310b26e3]{background:#e0f2f1;color:#0d9488}.btn-action-danger[data-v-310b26e3]{background:#fee2e2;color:#dc2626}.crud-tab .toolbar[data-v-6e1df87e]{margin-bottom:12px}.table[data-v-6e1df87e]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-6e1df87e],.table td[data-v-6e1df87e]{border:1px solid #ddd;padding:8px}.modal[data-v-6e1df87e]{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:100}.modal-box[data-v-6e1df87e]{background:#fff;padding:24px;border-radius:12px;min-width:680px;max-width:880px}.form .field[data-v-6e1df87e]{margin-bottom:12px}.form label[data-v-6e1df87e]{display:block;margin-bottom:8px;color:#334155;font-weight:600}.form input[data-v-6e1df87e],.form select[data-v-6e1df87e]{width:100%;padding:8px;box-sizing:border-box}.group-chip-list[data-v-6e1df87e]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:220px;overflow:auto;border:1px solid #e2e8f0;background:#f8fafc;padding:12px;border-radius:10px}.group-chip[data-v-6e1df87e]{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:999px;padding:8px 12px;font-size:13px;cursor:pointer;transition:all .2s ease}.group-chip[data-v-6e1df87e]:hover{border-color:#0d9488;color:#0f766e}.group-chip.active[data-v-6e1df87e]{border-color:#0d9488;background:#ccfbf1;color:#115e59;font-weight:600}.switch-row[data-v-6e1df87e]{display:flex;justify-content:space-between;align-items:center;border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:10px 12px}.switch-label[data-v-6e1df87e]{color:#334155;font-size:13px}.switch-btn[data-v-6e1df87e]{width:46px;height:26px;border:none;border-radius:999px;background:#cbd5e1;padding:2px;cursor:pointer;transition:background .2s;display:inline-flex;align-items:center}.switch-btn.on[data-v-6e1df87e]{background:#0d9488}.switch-dot[data-v-6e1df87e]{width:22px;height:22px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0003;transition:transform .2s}.switch-btn.on .switch-dot[data-v-6e1df87e]{transform:translate(20px)}.modal-actions[data-v-6e1df87e]{margin-top:16px;display:flex;gap:8px}.btn[data-v-6e1df87e]{padding:6px 12px;background:#0d9488;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-action[data-v-6e1df87e]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action+.btn-action[data-v-6e1df87e]{margin-left:4px}.btn-action-edit[data-v-6e1df87e]{background:#e0f2f1;color:#0d9488}.btn-action-danger[data-v-6e1df87e]{background:#fee2e2;color:#dc2626}@media (max-width: 900px){.modal-box[data-v-6e1df87e]{min-width:92vw}.group-chip-list[data-v-6e1df87e]{grid-template-columns:repeat(2,minmax(0,1fr))}}.crud-tab .toolbar[data-v-dd8f50d8]{margin-bottom:12px}.table[data-v-dd8f50d8]{width:100%;border-collapse:collapse;font-size:14px}.table th[data-v-dd8f50d8],.table td[data-v-dd8f50d8]{border:1px solid #e2e8f0;padding:10px}.table th[data-v-dd8f50d8]{background:#f8fafc;color:#334155;font-weight:600}.modal[data-v-dd8f50d8]{position:fixed;inset:0;background:rgba(15,23,42,.35);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-box[data-v-dd8f50d8]{background:#fff;padding:24px;border-radius:12px;min-width:640px;max-width:860px;width:92vw;box-shadow:0 20px 50px #0000002e}.form .field[data-v-dd8f50d8]{margin-bottom:12px}.form label[data-v-dd8f50d8]{display:block;margin-bottom:8px;font-size:13px;color:#334155;font-weight:600}.form input[data-v-dd8f50d8],.form select[data-v-dd8f50d8]{width:100%;padding:10px 12px;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px}.modal-actions[data-v-dd8f50d8]{margin-top:16px;display:flex;gap:8px}.btn[data-v-dd8f50d8]{padding:8px 14px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}.modal-actions .btn[data-v-dd8f50d8]:last-child{background:#e2e8f0;color:#334155}.btn-action[data-v-dd8f50d8]{padding:4px 10px;font-size:12px;border-radius:4px;border:none;cursor:pointer}.btn-action+.btn-action[data-v-dd8f50d8]{margin-left:4px}.btn-action-edit[data-v-dd8f50d8]{background:#e0f2f1;color:#0d9488}.btn-action-danger[data-v-dd8f50d8]{background:#fee2e2;color:#dc2626}.release-tab[data-v-99cd6421]{display:flex;flex-direction:column;gap:16px}.page-tip[data-v-99cd6421]{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;padding:12px 14px;border-radius:8px}.card[data-v-99cd6421]{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px}.card-title[data-v-99cd6421]{font-size:15px;font-weight:600;margin-bottom:14px;color:#0f172a}.form-card[data-v-99cd6421]{background:linear-gradient(180deg,#ffffff 0%,#f8fffe 100%)}.form-grid[data-v-99cd6421]{display:grid;grid-template-columns:repeat(2,minmax(0,280px));gap:12px 16px}.option-row[data-v-99cd6421]{margin-top:12px}.check-item[data-v-99cd6421]{display:inline-flex;align-items:center;gap:8px;color:#334155;font-size:13px}.migration-box[data-v-99cd6421]{margin-top:14px;padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fcfffe}.migration-title[data-v-99cd6421]{font-size:13px;font-weight:600;margin-bottom:6px;color:#0f172a}.migration-tip[data-v-99cd6421]{font-size:12px;color:#64748b;margin-bottom:10px}.migration-list[data-v-99cd6421]{display:flex;flex-direction:column;gap:8px}.migration-item[data-v-99cd6421]{justify-content:space-between;padding:6px 8px;border-radius:6px;background:#fff;border:1px solid #eef2f7}.field label[data-v-99cd6421]{display:block;margin-bottom:6px;font-size:12px;color:#64748b}.field input[data-v-99cd6421],.field select[data-v-99cd6421],.field textarea[data-v-99cd6421]{width:100%;padding:9px 12px;border:1px solid #dbe3ea;border-radius:8px;box-sizing:border-box;font-family:inherit}.actions[data-v-99cd6421]{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}.btn[data-v-99cd6421]{padding:9px 16px;border:none;border-radius:8px;cursor:pointer;font-size:13px}.btn-primary[data-v-99cd6421]{background:#0d9488;color:#fff}.btn-secondary[data-v-99cd6421]{background:#f1f5f9;color:#334155}.btn[data-v-99cd6421]:disabled{opacity:.6;cursor:not-allowed}.current-version[data-v-99cd6421]{margin-top:12px;color:#334155}.download-hint[data-v-99cd6421]{margin-top:10px;color:#475569;font-size:12px}.download-hint code[data-v-99cd6421]{background:#f1f5f9;padding:2px 6px;border-radius:4px}.table[data-v-99cd6421]{width:100%;border-collapse:collapse;min-width:760px}.table th[data-v-99cd6421],.table td[data-v-99cd6421]{border:1px solid #e5e7eb;padding:10px 8px;font-size:13px;text-align:left}.table th[data-v-99cd6421]{background:#f8fafc;color:#475569}.tag[data-v-99cd6421]{display:inline-block;padding:3px 8px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:12px}.tag-current[data-v-99cd6421],.tag-success[data-v-99cd6421]{background:#ccfbf1;color:#0f766e}.tag-fail[data-v-99cd6421]{background:#fee2e2;color:#b91c1c}.btn-action-primary[data-v-99cd6421]{padding:6px 10px;border:none;border-radius:6px;cursor:pointer;background:#e0f2f1;color:#0f766e;font-size:12px}.btn-action-danger[data-v-99cd6421]{padding:6px 10px;border:none;border-radius:6px;cursor:pointer;background:#fee2e2;color:#b91c1c;font-size:12px;margin-left:6px}.btn-action-primary[data-v-99cd6421]:disabled{opacity:.55;cursor:not-allowed}.btn-action-danger[data-v-99cd6421]:disabled{opacity:.55;cursor:not-allowed}.empty[data-v-99cd6421]{color:#94a3b8;padding:12px 0}.muted[data-v-99cd6421]{color:#64748b;font-size:12px}.output-box[data-v-99cd6421]{white-space:pre-wrap;word-break:break-word;background:#0f172a;color:#e2e8f0;padding:14px;border-radius:8px;font-size:12px;max-height:320px;overflow:auto}.modal-mask[data-v-99cd6421]{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:999}.modal-card[data-v-99cd6421]{width:min(780px,100%);background:#fff;border-radius:14px;padding:20px;box-shadow:0 24px 60px #0f172a33}.modal-title[data-v-99cd6421]{font-size:18px;font-weight:600;color:#0f172a;margin-bottom:10px}.modal-tip[data-v-99cd6421]{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;padding:10px 12px;border-radius:8px;margin-bottom:14px;font-size:13px}.form-grid-modal[data-v-99cd6421]{grid-template-columns:repeat(2,minmax(0,1fr))}.time-row[data-v-99cd6421]{display:flex;align-items:center;gap:8px}.time-row input[data-v-99cd6421]{width:90px}.field-block[data-v-99cd6421]{margin-top:12px}.bootstrap-result[data-v-99cd6421]{margin-top:14px;border:1px solid #dbeafe;background:#f8fbff;border-radius:10px;padding:12px}.result-title[data-v-99cd6421]{font-size:14px;font-weight:600;color:#0f172a;margin-bottom:6px}.result-line[data-v-99cd6421]{color:#334155;font-size:13px;margin-bottom:4px}.summary-list[data-v-99cd6421]{display:flex;flex-direction:column;gap:6px;margin-top:8px}.summary-item[data-v-99cd6421]{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e2e8f0}@media (max-width: 860px){.form-grid[data-v-99cd6421],.form-grid-modal[data-v-99cd6421]{grid-template-columns:1fr}}.switcher[data-v-d1c08313]{display:inline-flex;border:1px solid #dbe3ee;border-radius:10px;overflow:hidden;margin-bottom:12px}.switch-btn[data-v-d1c08313]{border:none;background:#fff;color:#334155;padding:8px 14px;font-size:13px;cursor:pointer}.switch-btn.active[data-v-d1c08313]{background:#0d9488;color:#fff}.toolbar[data-v-d1c08313]{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.filters[data-v-d1c08313]{display:flex;align-items:center;gap:8px;font-size:13px;color:#334155;flex-wrap:wrap}.filters select[data-v-d1c08313],.filters input[data-v-d1c08313]{height:32px;border:1px solid #e2e8f0;border-radius:8px;padding:0 8px}.filters input[data-v-d1c08313]{min-width:260px}.btn[data-v-d1c08313]{padding:8px 14px;border:none;border-radius:8px;font-size:13px;cursor:pointer}.btn-secondary[data-v-d1c08313]{background:#e2e8f0;color:#334155}.table[data-v-d1c08313]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-d1c08313],.table td[data-v-d1c08313]{border:1px solid #e2e8f0;padding:8px 10px;text-align:left;vertical-align:top}.table th[data-v-d1c08313]{background:#f8fafc;color:#334155;font-weight:600}.tag[data-v-d1c08313]{display:inline-block;padding:2px 8px;border-radius:999px;background:#e2e8f0;color:#334155;margin-right:4px}.tag-op[data-v-d1c08313]{background:#e0f2fe;color:#0369a1}.tag-method[data-v-d1c08313]{background:#ecfccb;color:#3f6212}.status[data-v-d1c08313]{display:inline-block;min-width:42px;text-align:center;padding:2px 8px;border-radius:999px}.status.ok[data-v-d1c08313]{background:#dcfce7;color:#166534}.status.bad[data-v-d1c08313]{background:#fee2e2;color:#b91c1c}.msg-cell[data-v-d1c08313]{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty[data-v-d1c08313]{color:#64748b;text-align:center}.pager[data-v-d1c08313]{margin-top:12px;display:flex;gap:12px;align-items:center;font-size:13px}.btn-mini[data-v-d1c08313]{padding:6px 10px;font-size:12px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;color:#334155}.app-center[data-v-f68c5124]{padding:16px}.tabs[data-v-f68c5124]{display:flex;gap:4px;margin-bottom:16px;flex-wrap:wrap}.tab[data-v-f68c5124]{padding:8px 14px;background:#f0f0f0;color:#333;text-decoration:none;border-radius:6px;font-size:13px}.tab[data-v-f68c5124]:hover{background:#e0e0e0}.tab.active[data-v-f68c5124]{background:#0d9488;color:#fff}.content[data-v-f68c5124]{background:#fff;padding:16px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.tip[data-v-f68c5124]{color:#999;padding:20px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;background:#f8fafc;min-height:100vh;margin:0;color:#1e293b}#app{width:100%;min-height:100vh}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:#0d9488;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background:#0f766e;box-shadow:0 2px 8px #0d94884d}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-reset{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:#fff;color:#475569;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;min-height:38px}.btn-reset:hover{border-color:#0d9488;color:#0d9488;background:#f0fdfa}.btn-reset:active{transform:scale(.98)}.btn-action{display:inline-flex;align-items:center;padding:5px 12px;font-size:12px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent;margin-right:6px}.btn-action:last-child{margin-right:0}.btn-action-edit{background:#0d9488;color:#fff;border-color:#0d9488}.btn-action-edit:hover{background:#0f766e;border-color:#0f766e;box-shadow:0 2px 6px #0d94884d}.btn-action-view{background:#fff;color:#475569;border-color:#cbd5e1}.btn-action-view:hover{border-color:#0d9488;color:#0d9488;background:#f0fdfa}.btn-action-danger{background:#dc2626;color:#fff;border-color:#dc2626}.btn-action-danger:hover{background:#b91c1c;border-color:#b91c1c;box-shadow:0 2px 6px #dc26264d}.form-select,.form-input,input[type=date],input[type=month],input[type=datetime-local]{padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;background:#fff;color:#1e293b;transition:border-color .2s,box-shadow .2s}.form-select:hover,.form-input:hover,input[type=date]:hover,input[type=month]:hover{border-color:#cbd5e1}.form-select:focus,.form-input:focus,input[type=date]:focus,input[type=month]:focus,input[type=datetime-local]:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.form-select{min-height:38px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.crud-tab .toolbar select.form-select,.toolbar select.form-select{min-width:140px}.form select,.modal .form select,.crud-tab .form select{padding:8px 32px 8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right 10px center;min-height:38px;width:100%;box-sizing:border-box;appearance:none;cursor:pointer}.form select:focus,.modal .form select:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.form input:not([type=checkbox]):not([type=radio]),.modal .form input:not([type=checkbox]):not([type=radio]){padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;width:100%;box-sizing:border-box}.form input:focus,.modal .form input:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.data-table-wrap,.table-wrap{margin:16px 0;overflow:visible}.main .data-table-wrap,.main .table-wrap{overflow:visible!important}.data-table,.crud-tab .table,.sys-manage .content .table,.app-center .content .table{width:100%!important;border-collapse:separate!important;border-spacing:0!important;border:none!important;font-size:13px!important;background:#fff!important}.data-table th,.data-table td,.crud-tab .table th,.crud-tab .table td,.sys-manage .content .table th,.sys-manage .content .table td,.app-center .content .table th,.app-center .content .table td{border-style:solid!important;border-color:#e2e8f0!important;border-width:0 1px 1px 0!important;padding:8px 10px!important;text-align:center!important;vertical-align:middle}.data-table thead tr:first-child th,.crud-tab .table thead tr:first-child th,.sys-manage .content .table thead tr:first-child th,.app-center .content .table thead tr:first-child th{border-top-width:1px!important}.data-table th:first-child,.data-table td:first-child,.crud-tab .table th:first-child,.crud-tab .table td:first-child,.sys-manage .content .table th:first-child,.sys-manage .content .table td:first-child,.app-center .content .table th:first-child,.app-center .content .table td:first-child{border-left-width:1px!important}.data-table th,.crud-tab .table th,.sys-manage .content .table th,.app-center .content .table th{background:#f1f5f9!important;font-weight:600!important}.data-table thead th,.crud-tab .table thead th,.sys-manage .content .table thead th,.app-center .content .table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:8;background:#f1f5f9!important;box-shadow:0 1px #e2e8f0,0 4px 8px -2px #0f172a14}.data-table tbody tr:nth-child(2n),.crud-tab .table tbody tr:nth-child(2n),.sys-manage .content .table tbody tr:nth-child(2n),.app-center .content .table tbody tr:nth-child(2n){background:#fafafa!important}.data-table td.station-name{text-align:left!important;font-weight:500;min-width:100px}
