:root{--color-primary: #2E8B57;--color-primary-light: #3CB371;--color-primary-dark: #1E6B3F;--color-primary-bg: #F0F9F4;--color-accent: #FF8C42;--color-bg: #F5F7FA;--color-card: #FFFFFF;--color-text: #1A1A2E;--color-text-secondary: #6B7280;--color-border: #E5E7EB;--color-danger: #EF4444;--color-warning: #F59E0B;--color-success: #10B981;--tab-height: 56px;--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;color:var(--color-text);background:var(--color-bg);line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}#app{min-height:100vh;background:var(--color-bg)}a{text-decoration:none;color:var(--color-primary);transition:color .2s}a:hover{color:var(--color-primary-dark)}body{padding-bottom:calc(var(--tab-height) + var(--safe-bottom))}.floating-ball[data-v-ae3da8d7]{position:fixed;width:60px;height:60px;border-radius:50%;background:#4ade804d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 12px #00000026;cursor:grab;display:flex;align-items:center;justify-content:center;z-index:1001;touch-action:none}.floating-ball[data-v-ae3da8d7]:active{cursor:grabbing}.floating-ball[data-v-ae3da8d7]:hover{background:#4ade8080;box-shadow:0 4px 20px #00000040}.ball-icon[data-v-ae3da8d7]{font-size:28px;z-index:2}.ball-pulse[data-v-ae3da8d7]{position:absolute;width:100%;height:100%;border-radius:50%;background:#4ade8066;animation:pulse-ae3da8d7 2s ease-in-out infinite}@keyframes pulse-ae3da8d7{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.3);opacity:0}}.floating-panel[data-v-ae3da8d7]{position:fixed;right:24px;top:50%;transform:translateY(-50%);width:400px;max-height:80vh;background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;z-index:1001;display:flex;flex-direction:column;overflow:hidden}.panel-header[data-v-ae3da8d7]{padding:16px 20px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;background:#f9fafb}.panel-header h3[data-v-ae3da8d7]{margin:0;font-size:18px;font-weight:600;color:#1a1a2e}.close-btn[data-v-ae3da8d7]{background:none;border:none;font-size:20px;cursor:pointer;color:#666;padding:4px 8px;border-radius:4px;transition:all .2s}.close-btn[data-v-ae3da8d7]:hover{background:#e5e7eb;color:#1a1a2e}.panel-body[data-v-ae3da8d7]{flex:1;overflow-y:auto;padding:20px}.limit-notice[data-v-ae3da8d7]{text-align:center;padding:20px}.notice-icon[data-v-ae3da8d7]{font-size:48px;margin-bottom:16px}.notice-content p[data-v-ae3da8d7]{margin:0 0 8px;font-size:18px;font-weight:600;color:#1a1a2e}.notice-content span[data-v-ae3da8d7]{color:#666;font-size:14px}.guide-form[data-v-ae3da8d7]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-ae3da8d7]{display:flex;flex-direction:column;gap:8px}.form-label[data-v-ae3da8d7]{font-size:14px;font-weight:500;color:#1a1a2e}.form-input[data-v-ae3da8d7]{padding:10px 12px;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;transition:border-color .2s}.form-input[data-v-ae3da8d7]:focus{outline:none;border-color:#4ade80}.province-groups[data-v-ae3da8d7]{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;padding:4px}.province-group[data-v-ae3da8d7]{border-bottom:1px solid #f0f0f0}.province-group[data-v-ae3da8d7]:last-child{border-bottom:none}.province-header[data-v-ae3da8d7]{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.province-header[data-v-ae3da8d7]:hover{background:#f9fafb}.province-arrow[data-v-ae3da8d7]{font-size:12px;color:#9ca3af;width:14px;text-align:center}.province-name[data-v-ae3da8d7]{font-size:14px;font-weight:500;color:#374151;flex:1}.province-count[data-v-ae3da8d7]{font-size:12px;color:#9ca3af}.province-cities[data-v-ae3da8d7]{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:6px 12px 10px}.city-checkbox[data-v-ae3da8d7]{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s;font-size:14px}.city-checkbox[data-v-ae3da8d7]:hover{border-color:#4ade80;background:#f0fdf4}.city-checkbox input[type=checkbox][data-v-ae3da8d7]{margin:0}.travel-group-checkboxes[data-v-ae3da8d7]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:200px;overflow-y:auto}.travel-group-checkbox[data-v-ae3da8d7]{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s;font-size:14px}.travel-group-checkbox[data-v-ae3da8d7]:hover{border-color:#f59e0b;background:#fffbeb}.travel-group-checkbox input[type=checkbox][data-v-ae3da8d7]{margin:0}.error-text[data-v-ae3da8d7]{margin:0;color:#ef4444;font-size:12px}.btn-submit[data-v-ae3da8d7],.btn-primary[data-v-ae3da8d7]{padding:12px 24px;background:#4ade80;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.btn-submit[data-v-ae3da8d7]:hover:not(:disabled),.btn-primary[data-v-ae3da8d7]:hover{background:#3ec970}.btn-submit[data-v-ae3da8d7]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-ae3da8d7]{padding:10px 20px;background:#f3f4f6;color:#1a1a2e;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-secondary[data-v-ae3da8d7]:hover{background:#e5e7eb}.btn-text[data-v-ae3da8d7]{padding:10px 20px;background:none;border:none;color:#666;font-size:14px;cursor:pointer}.btn-text[data-v-ae3da8d7]:hover{color:#1a1a2e}.streaming-state[data-v-ae3da8d7]{display:flex;flex-direction:column;gap:12px}.streaming-header[data-v-ae3da8d7]{display:flex;align-items:center;gap:8px;font-size:14px;color:#666}.streaming-dot[data-v-ae3da8d7]{width:10px;height:10px;border-radius:50%;background:#4ade80;animation:blink-ae3da8d7 1s ease-in-out infinite}@keyframes blink-ae3da8d7{0%,to{opacity:1}50%{opacity:.3}}.result-state[data-v-ae3da8d7]{display:flex;flex-direction:column;gap:16px}.result-header[data-v-ae3da8d7]{display:flex;align-items:center;gap:8px}.result-header h4[data-v-ae3da8d7]{flex:1;margin:0;font-size:16px;font-weight:600;color:#1a1a2e}.success-icon[data-v-ae3da8d7]{font-size:20px}.result-content[data-v-ae3da8d7]{max-height:500px;overflow-y:auto;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.result-text[data-v-ae3da8d7]{margin:0;font-size:14px;line-height:1.6;color:#1a1a2e;white-space:pre-wrap;word-wrap:break-word}.btn-copy[data-v-ae3da8d7]{padding:6px 14px;background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-copy[data-v-ae3da8d7]:hover{background:#dcfce7}.result-actions[data-v-ae3da8d7]{display:flex;gap:10px;align-items:center}.btn-import[data-v-ae3da8d7]{flex:1;padding:10px 16px;background:var(--color-primary, #2E8B57);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .2s}.btn-import[data-v-ae3da8d7]:disabled{opacity:.45;cursor:not-allowed}.btn-import[data-v-ae3da8d7]:hover{opacity:.9}.date-picker-overlay[data-v-ae3da8d7]{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10;border-radius:12px}.date-picker-modal[data-v-ae3da8d7]{background:#fff;border-radius:12px;padding:20px;width:260px;box-shadow:0 8px 32px #0003}.modal-title[data-v-ae3da8d7]{margin:0 0 16px;font-size:16px;font-weight:600;color:#1a1a2e}.date-input[data-v-ae3da8d7]{width:100%;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;margin-bottom:12px;box-sizing:border-box}.date-input[data-v-ae3da8d7]:focus{outline:none;border-color:var(--color-primary, #2E8B57)}.import-error[data-v-ae3da8d7]{color:#ef4444;font-size:13px;margin:0 0 12px}.modal-actions[data-v-ae3da8d7]{display:flex;gap:10px;justify-content:flex-end}.error-state[data-v-ae3da8d7]{text-align:center;padding:20px}.error-icon[data-v-ae3da8d7]{font-size:48px;margin-bottom:16px}.error-message[data-v-ae3da8d7]{font-size:16px;color:#ef4444;margin:0 0 20px}.error-actions[data-v-ae3da8d7]{display:flex;gap:12px;justify-content:center}.fade-enter-active[data-v-ae3da8d7],.fade-leave-active[data-v-ae3da8d7]{transition:all .3s ease}.fade-enter-from[data-v-ae3da8d7],.fade-leave-to[data-v-ae3da8d7]{opacity:0;transform:scale(.8)}.slide-enter-active[data-v-ae3da8d7],.slide-leave-active[data-v-ae3da8d7]{transition:all .3s ease}.slide-enter-from[data-v-ae3da8d7],.slide-leave-to[data-v-ae3da8d7]{opacity:0;transform:translateY(-50%) translate(100%)}@media(max-width:768px){.floating-panel[data-v-ae3da8d7]{width:calc(100vw - 48px);right:24px}.province-cities[data-v-ae3da8d7]{grid-template-columns:1fr}}.app-layout[data-v-eec2e40e]{min-height:100vh;display:flex;flex-direction:column}.layout-content[data-v-eec2e40e]{flex:1}.tab-bar[data-v-eec2e40e]{position:fixed;bottom:0;left:0;right:0;height:var(--tab-height);padding-bottom:var(--safe-bottom);background:var(--color-card);border-top:1px solid var(--color-border);display:flex;justify-content:space-around;align-items:center;z-index:200;box-shadow:0 -1px 8px #0000000a}.tab-item[data-v-eec2e40e]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;height:100%;padding:0 4px;border:none;background:transparent;cursor:pointer;color:#9ca3af;transition:color .2s;-webkit-tap-highlight-color:transparent}.tab-item.active[data-v-eec2e40e]{color:var(--color-primary)}.tab-icon[data-v-eec2e40e]{width:24px;height:24px}.tab-label[data-v-eec2e40e]{font-size:11px;font-weight:500}
