#app[data-v-45a1e5bc]{min-height:100vh}.fade-enter-active[data-v-45a1e5bc],.fade-leave-active[data-v-45a1e5bc]{transition:opacity .2s}.fade-enter-from[data-v-45a1e5bc],.fade-leave-to[data-v-45a1e5bc]{opacity:0}.home[data-v-ef0f0ce7]{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.header[data-v-ef0f0ce7]{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);text-align:center;color:#fff;padding:36px 20px 48px;position:relative}.version-badge[data-v-ef0f0ce7]{flex-direction:column;align-items:flex-end;gap:3px;display:flex;position:absolute;top:12px;right:14px}.version-tag[data-v-ef0f0ce7]{color:#fff;letter-spacing:.5px;background:#ffffff40;border:1px solid #fff6;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}.version-expire[data-v-ef0f0ce7]{color:#ffffffbf;white-space:nowrap;font-size:10px}.header-content[data-v-ef0f0ce7]{max-width:480px;margin:0 auto}.logo[data-v-ef0f0ce7]{margin-bottom:10px;font-size:44px}.header h1[data-v-ef0f0ce7]{margin-bottom:6px;font-size:22px;font-weight:700}.subtitle[data-v-ef0f0ce7]{opacity:.85;font-size:13px}.card[data-v-ef0f0ce7]{background:var(--bg-white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.input-card[data-v-ef0f0ce7]{margin-top:-28px;margin-bottom:20px}.upload-section[data-v-ef0f0ce7]{flex-direction:column;gap:12px;display:flex}.drop-zone[data-v-ef0f0ce7]{border:2px dashed var(--border);border-radius:var(--radius-sm);text-align:center;cursor:pointer;background:var(--bg);padding:32px 20px;transition:all .25s}.drop-zone[data-v-ef0f0ce7]:hover,.drop-zone.dragging[data-v-ef0f0ce7]{border-color:var(--primary);background:#4f46e50a}.drop-zone.has-file[data-v-ef0f0ce7]{border-color:var(--success);background:#10b9810a}.drop-icon[data-v-ef0f0ce7]{margin-bottom:8px;font-size:36px}.drop-text[data-v-ef0f0ce7]{color:var(--text-primary);margin-bottom:4px;font-size:14px;font-weight:600}.drop-text.file-name[data-v-ef0f0ce7]{color:var(--success);word-break:break-all}.drop-hint[data-v-ef0f0ce7]{color:var(--text-light);font-size:12px}.file-input[data-v-ef0f0ce7]{display:none}.btn-generate[data-v-ef0f0ce7]{width:100%;padding:12px}.progress-bar-wrapper[data-v-ef0f0ce7]{background:var(--bg);border-radius:12px;height:24px;position:relative;overflow:hidden}.progress-bar[data-v-ef0f0ce7]{background:linear-gradient(90deg, var(--primary), var(--primary-light));border-radius:12px;height:100%;transition:width .3s}.progress-text[data-v-ef0f0ce7]{color:var(--text-secondary);font-size:11px;font-weight:600;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.btn[data-v-ef0f0ce7]{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:10px 18px;font-size:14px;font-weight:600;transition:all .2s}.btn[data-v-ef0f0ce7]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-ef0f0ce7]{background:var(--primary);color:#fff}.btn-primary[data-v-ef0f0ce7]:hover:not(:disabled){background:var(--primary-light)}.btn-outline[data-v-ef0f0ce7]{color:var(--primary);border:1px solid var(--primary);background:0 0}.btn-outline[data-v-ef0f0ce7]:hover{background:#4f46e50d}.btn-danger[data-v-ef0f0ce7]{color:var(--danger);background:0 0;border:1px solid #0000}.btn-danger[data-v-ef0f0ce7]:hover{background:#ef44440f}.btn-sm[data-v-ef0f0ce7]{padding:6px 12px;font-size:12px}.btn-icon[data-v-ef0f0ce7]{cursor:pointer;background:0 0;border:none;padding:2px;font-size:16px;line-height:1;transition:transform .15s}.btn-icon[data-v-ef0f0ce7]:hover{transform:scale(1.2)}.list-section[data-v-ef0f0ce7]{margin-bottom:24px}.list-header[data-v-ef0f0ce7]{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 4px;display:flex}.list-title[data-v-ef0f0ce7]{color:var(--text-primary);font-size:16px;font-weight:700}.btn-clear-all[data-v-ef0f0ce7]{color:var(--text-light);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:12px;transition:all .2s}.btn-clear-all[data-v-ef0f0ce7]:hover{color:var(--danger);background:#ef44440f}.empty-state[data-v-ef0f0ce7]{text-align:center;color:var(--text-light);padding:40px 20px}.empty-icon[data-v-ef0f0ce7]{margin-bottom:10px;font-size:40px}.empty-state p[data-v-ef0f0ce7]{margin-bottom:4px;font-size:14px}.empty-hint[data-v-ef0f0ce7]{font-size:12px}.qr-list[data-v-ef0f0ce7]{flex-direction:column;gap:12px;display:flex}.qr-card[data-v-ef0f0ce7]{gap:16px;padding:16px;display:flex}.qr-card-left[data-v-ef0f0ce7]{flex-shrink:0}.qr-thumb[data-v-ef0f0ce7]{border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;justify-content:center;align-items:center;width:120px;height:120px;display:flex;overflow:hidden}.qr-image[data-v-ef0f0ce7]{object-fit:contain;width:110px;height:110px}.qr-card-right[data-v-ef0f0ce7]{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.qr-card-title[data-v-ef0f0ce7]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.qr-card-meta[data-v-ef0f0ce7]{color:var(--text-light);gap:12px;font-size:11px;display:flex}.qr-card-link[data-v-ef0f0ce7]{background:var(--bg);border-radius:6px;align-items:center;gap:6px;padding:6px 10px;display:flex}.link-text[data-v-ef0f0ce7]{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.qr-card-actions[data-v-ef0f0ce7]{gap:8px;margin-top:2px;display:flex}.list-enter-active[data-v-ef0f0ce7]{transition:all .3s}.list-leave-active[data-v-ef0f0ce7]{transition:all .2s}.list-enter-from[data-v-ef0f0ce7]{opacity:0;transform:translateY(-16px)}.list-leave-to[data-v-ef0f0ce7]{opacity:0;transform:translate(30px)}.list-move[data-v-ef0f0ce7]{transition:transform .3s}.footer[data-v-ef0f0ce7]{text-align:center;margin-top:auto;padding:24px 20px}.footer p[data-v-ef0f0ce7]{color:var(--text-light);font-size:12px}.footer .icp[data-v-ef0f0ce7]{margin-top:4px}.footer .icp a[data-v-ef0f0ce7]{color:var(--text-light);text-decoration:none}.footer .icp a[data-v-ef0f0ce7]:hover{color:var(--primary)}@media (width<=400px){.header h1[data-v-ef0f0ce7]{font-size:18px}.input-card[data-v-ef0f0ce7]{padding:16px}.qr-card[data-v-ef0f0ce7]{text-align:center;flex-direction:column;align-items:center}.qr-card-right[data-v-ef0f0ce7]{width:100%}.qr-card-actions[data-v-ef0f0ce7]{justify-content:center}}.login-page[data-v-b23d4617]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card[data-v-b23d4617]{background:#fff;border-radius:16px;width:100%;max-width:380px;padding:40px;box-shadow:0 20px 60px #00000026}.login-header[data-v-b23d4617]{text-align:center;margin-bottom:32px}.login-icon[data-v-b23d4617]{margin-bottom:12px;font-size:48px}.login-header h1[data-v-b23d4617]{color:#1a1a2e;margin:0 0 8px;font-size:20px;font-weight:700}.login-header p[data-v-b23d4617]{color:#888;margin:0;font-size:14px}.login-form[data-v-b23d4617]{flex-direction:column;gap:16px;display:flex}.form-input[data-v-b23d4617]{box-sizing:border-box;border:2px solid #e8e8e8;border-radius:10px;outline:none;width:100%;padding:12px 16px;font-size:15px;transition:border-color .2s}.form-input[data-v-b23d4617]:focus{border-color:#667eea}.error-msg[data-v-b23d4617]{color:#e74c3c;text-align:center;margin:0;font-size:13px}.btn-login[data-v-b23d4617]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:10px;width:100%;padding:12px;font-size:15px;font-weight:600;transition:opacity .2s}.btn-login[data-v-b23d4617]:hover{opacity:.9}.btn-login[data-v-b23d4617]:disabled{opacity:.6;cursor:not-allowed}.login-hint[data-v-b23d4617]{text-align:center;color:#aaa;margin:16px 0 0;font-size:12px}.icp[data-v-b23d4617]{text-align:center;margin-top:12px}.icp a[data-v-b23d4617]{color:#bbb;font-size:11px;text-decoration:none}.icp a[data-v-b23d4617]:hover{color:#667eea}:root{--primary:#4f46e5;--primary-light:#6366f1;--primary-dark:#3730a3;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--bg:#f3f4f6;--bg-white:#fff;--text-primary:#111827;--text-secondary:#6b7280;--text-light:#9ca3af;--border:#e5e7eb;--shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius:12px;--radius-sm:8px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif}#app{min-height:100vh}.container{max-width:480px;margin:0 auto;padding:0 20px}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-light);border-radius:2px}
