:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-active:#1e40af;--color-primary-light:#dbeafe;--color-primary-lighter:#eff6ff;--color-text:#1f2937;--color-text-secondary:#6b7280;--color-text-light:#9ca3af;--color-background:#f8fafc;--color-surface:#fff;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-success:#10b981;--color-success-light:#d1fae5;--color-error:#ef4444;--color-error-light:#fee2e2;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-xs:0 1px 2px 0 rgba(0,0,0,.03);--shadow-sm:0 1px 3px 0 rgba(0,0,0,.06), 0 1px 2px -1px rgba(0,0,0,.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,.08), 0 2px 4px -2px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.04);--shadow-focus:0 0 0 3px var(--color-primary-light);--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-base:16px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:26px;--min-touch-target:44px;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{font-family:var(--font-family);color:var(--color-text);background-color:var(--color-background);overscroll-behavior:none;min-width:320px;max-width:428px;min-height:100vh;padding-bottom:env(safe-area-inset-bottom);margin:0 auto;line-height:1.6;overflow-x:hidden}#app{flex-direction:column;width:100%;min-height:100vh;display:flex}input,textarea,select,button{font-family:inherit;font-size:inherit;line-height:inherit;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:0 0;border:none;outline:none}input[type=text]{width:100%;height:var(--min-touch-target);padding:0 var(--spacing-md);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background-color var(--transition-normal)}input[type=tel]{width:100%;height:var(--min-touch-target);padding:0 var(--spacing-md);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background-color var(--transition-normal)}input[type=email]{width:100%;height:var(--min-touch-target);padding:0 var(--spacing-md);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background-color var(--transition-normal)}input[type=number]{width:100%;height:var(--min-touch-target);padding:0 var(--spacing-md);background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background-color var(--transition-normal)}input[type=text]:hover{border-color:var(--color-primary-light)}input[type=tel]:hover{border-color:var(--color-primary-light)}input[type=email]:hover{border-color:var(--color-primary-light)}input[type=number]:hover{border-color:var(--color-primary-light)}input[type=text]:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);background-color:var(--color-surface)}input[type=tel]:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);background-color:var(--color-surface)}input[type=email]:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);background-color:var(--color-surface)}input[type=number]:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);background-color:var(--color-surface)}input[type=text]::-webkit-input-placeholder{color:var(--color-text-light)}input[type=text]::-moz-placeholder{color:var(--color-text-light)}input[type=text]::-ms-input-placeholder{color:var(--color-text-light)}input[type=text]::placeholder{color:var(--color-text-light)}input[type=tel]::-webkit-input-placeholder{color:var(--color-text-light)}input[type=tel]::-moz-placeholder{color:var(--color-text-light)}input[type=tel]::-ms-input-placeholder{color:var(--color-text-light)}input[type=tel]::placeholder{color:var(--color-text-light)}input[type=email]::-webkit-input-placeholder{color:var(--color-text-light)}input[type=email]::-moz-placeholder{color:var(--color-text-light)}input[type=email]::-ms-input-placeholder{color:var(--color-text-light)}input[type=email]::placeholder{color:var(--color-text-light)}input[type=number]::-webkit-input-placeholder{color:var(--color-text-light)}input[type=number]::-moz-placeholder{color:var(--color-text-light)}input[type=number]::-ms-input-placeholder{color:var(--color-text-light)}input[type=number]::placeholder{color:var(--color-text-light)}button{justify-content:center;align-items:center;gap:var(--spacing-sm);min-height:var(--min-touch-target);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:#fff;font-size:var(--font-size-base);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation;font-weight:500;display:inline-flex}button:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-sm)}button:active{background-color:var(--color-primary-active);box-shadow:none;transform:scale(.97)}button:disabled{background-color:var(--color-border);color:var(--color-text-light);cursor:not-allowed;box-shadow:none;transform:none}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}a:active{color:var(--color-primary-active)}ul,ol{list-style:none}img{max-width:100%;height:auto;display:block}.text-center{text-align:center}.text-secondary{color:var(--color-text-secondary)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.container{width:100%;padding:var(--spacing-md)}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg);border:1px solid var(--color-border-light)}@media screen and (max-width:359px){:root{--spacing-md:12px;--spacing-lg:18px;--font-size-xl:20px;--font-size-2xl:24px}.card{padding:var(--spacing-md);border-radius:var(--radius-md)}}@media screen and (min-width:360px) and (max-width:389px){:root{--spacing-md:14px;--spacing-lg:20px}}@media screen and (min-width:390px) and (max-width:427px){:root{--spacing-md:16px;--spacing-lg:24px}}@media screen and (min-width:428px){body{box-shadow:0 0 30px rgba(0,0,0,.1)}}@supports (padding-top:env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}.upload-page[data-v-e3a38611]{background:#f5f7fa;min-height:100vh;padding:16px}.page-header[data-v-e3a38611]{text-align:center;padding:20px 0}.page-title[data-v-e3a38611]{color:#333;margin:0;font-size:24px;font-weight:600}.upload-form[data-v-e3a38611]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 20px rgba(0,0,0,.08)}.form-group[data-v-e3a38611]{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label[data-v-e3a38611]{color:#333;font-size:14px;font-weight:500}.form-input[data-v-e3a38611]{border:1.5px solid #e0e0e0;border-radius:10px;height:44px;padding:0 14px;font-size:16px;transition:all .2s}.form-input[data-v-e3a38611]:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.15)}.form-input.input-error[data-v-e3a38611]{border-color:#ef4444}.error-message[data-v-e3a38611]{color:#ef4444;font-size:12px}.file-selector[data-v-e3a38611]{cursor:pointer}.file-input-hidden[data-v-e3a38611]{display:none}.file-drop-zone[data-v-e3a38611]{background:#fafafa;border:2px dashed #d0d0d0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:30px;transition:all .2s;display:flex}.file-drop-zone[data-v-e3a38611]:hover{background:#f0f7ff;border-color:#3b82f6}.drop-icon[data-v-e3a38611]{color:#3b82f6;margin-bottom:8px;font-size:36px}.drop-text[data-v-e3a38611]{color:#333;margin-bottom:4px;font-size:16px}.drop-hint[data-v-e3a38611]{color:#999;font-size:12px}.selected-files[data-v-e3a38611]{background:#f8f9fa;border-radius:10px;margin-top:16px;padding:12px;overflow:hidden}.files-header[data-v-e3a38611]{color:#666;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;display:flex}.clear-btn[data-v-e3a38611]{color:#999;background:0 0;border:1px solid #ddd;border-radius:6px;min-height:auto;padding:4px 12px;font-size:12px}.clear-btn[data-v-e3a38611]:hover{color:#ef4444;background:0 0;border-color:#ef4444}.file-grid[data-v-e3a38611]{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}@media (max-width:360px){.file-grid[data-v-e3a38611]{grid-template-columns:repeat(2,1fr)}}.file-card[data-v-e3a38611]{background:#fff;border:1px solid #eee;border-radius:10px;flex-direction:column;align-items:center;min-width:0;padding:10px 6px;transition:all .2s;display:flex;position:relative;overflow:hidden}.file-card.uploading[data-v-e3a38611]{background:#f0f7ff;border-color:#3b82f6}.file-card.success[data-v-e3a38611]{background:#ecfdf5;border-color:#10b981}.file-card.failed[data-v-e3a38611]{background:#fef2f2;border-color:#ef4444}.file-preview[data-v-e3a38611]{border-radius:6px;flex-shrink:0;width:50px;height:50px;margin-bottom:4px;overflow:hidden}.file-preview img[data-v-e3a38611]{object-fit:cover;width:100%;height:100%}.file-type-icon[data-v-e3a38611]{flex-shrink:0;margin-bottom:4px;font-size:24px}.file-name[data-v-e3a38611]{color:#333;text-align:center;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;width:100%;margin-bottom:2px;padding:0 2px;font-size:10px;overflow:hidden}.file-type-label[data-v-e3a38611]{color:#999;background:#f0f0f0;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:9px}.remove-btn[data-v-e3a38611]{color:#fff;background:#ff5252;border-radius:50%;width:20px;height:20px;min-height:20px;padding:0;font-size:14px;line-height:1;position:absolute;top:4px;right:4px}.file-progress[data-v-e3a38611]{background:#e0e0e0;border-radius:0 0 10px 10px;height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.progress-bar-mini[data-v-e3a38611]{background:#3b82f6;height:100%;transition:width .2s}.upload-progress[data-v-e3a38611]{background:#f0f7ff;border-radius:10px;margin-top:16px;padding:12px}.progress-header[data-v-e3a38611]{color:#333;justify-content:space-between;margin-bottom:8px;font-size:14px;display:flex}.progress-percent[data-v-e3a38611]{color:#3b82f6;font-weight:600}.progress-bar[data-v-e3a38611]{background:#e0e0e0;border-radius:3px;height:6px;overflow:hidden}.progress-fill[data-v-e3a38611]{background:#3b82f6;border-radius:3px;height:100%;transition:width .3s}.submit-btn[data-v-e3a38611]{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:12px;width:100%;height:50px;margin-top:16px;font-size:16px;font-weight:600;transition:all .2s}.submit-btn[data-v-e3a38611]:hover:not(:disabled){background:#2563eb;box-shadow:0 4px 12px rgba(59,130,246,.3)}.submit-btn[data-v-e3a38611]:disabled{cursor:not-allowed;background:#ccc}.upload-result[data-v-e3a38611]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 20px rgba(0,0,0,.08)}.result-header[data-v-e3a38611]{text-align:center;margin-bottom:16px}.result-success[data-v-e3a38611]{color:#10b981;font-size:20px;font-weight:600}.result-partial[data-v-e3a38611]{color:#f59e0b;font-size:20px;font-weight:600}.preview-grid[data-v-e3a38611]{-webkit-overflow-scrolling:touch;gap:12px;margin-bottom:20px;padding-bottom:8px;display:flex;overflow-x:auto}.preview-grid[data-v-e3a38611]::-webkit-scrollbar{height:4px}.preview-grid[data-v-e3a38611]::-webkit-scrollbar-track{background:#f0f0f0;border-radius:2px}.preview-grid[data-v-e3a38611]::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.preview-card[data-v-e3a38611]{background:#f8f9fa;border:1px solid #eee;border-radius:10px;flex-direction:column;flex-shrink:0;align-items:center;width:90px;padding:10px;display:flex}.preview-image[data-v-e3a38611]{aspect-ratio:1;border-radius:8px;width:100%;margin-bottom:8px;overflow:hidden}.preview-image img[data-v-e3a38611]{object-fit:cover;width:100%;height:100%}.preview-icon[data-v-e3a38611]{aspect-ratio:1;background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;width:100%;margin-bottom:8px;display:flex}.type-icon[data-v-e3a38611]{margin-bottom:4px;font-size:32px}.type-label[data-v-e3a38611]{color:#666;font-size:11px}.preview-name[data-v-e3a38611]{color:#333;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:10px;display:none;overflow:hidden}.result-actions[data-v-e3a38611]{gap:12px;display:flex}.continue-btn[data-v-e3a38611],.reset-btn[data-v-e3a38611]{cursor:pointer;border-radius:10px;flex:1;height:44px;font-size:14px;font-weight:500}.continue-btn[data-v-e3a38611]{color:#fff;background:#3b82f6;border:none}.continue-btn[data-v-e3a38611]:hover{background:#2563eb}.reset-btn[data-v-e3a38611]{color:#3b82f6;background:#fff;border:1.5px solid #3b82f6}.reset-btn[data-v-e3a38611]:hover{background:#f0f7ff}.admin-page[data-v-bba00af5]{background:#f5f5f5;min-height:100vh;padding:16px}.page-header[data-v-bba00af5]{text-align:center;padding:16px 0}.page-title[data-v-bba00af5]{color:#333;margin:0 0 4px;font-size:22px;font-weight:600}.page-subtitle[data-v-bba00af5]{color:#666;margin:0;font-size:14px}.download-actions[data-v-bba00af5]{gap:12px;margin-bottom:16px;display:flex}.download-btn[data-v-bba00af5]{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:10px;flex:1;height:44px;font-size:14px;font-weight:500}.download-btn[data-v-bba00af5]:hover{background:#2563eb}.download-btn.secondary[data-v-bba00af5]{color:#3b82f6;background:#fff;border:1.5px solid #3b82f6}.download-btn.secondary[data-v-bba00af5]:hover{background:#f0f7ff}.download-btn[data-v-bba00af5]:disabled{opacity:.6;cursor:not-allowed}.loading-state[data-v-bba00af5],.error-state[data-v-bba00af5],.empty-state[data-v-bba00af5]{text-align:center;background:#fff;border-radius:12px;padding:40px 20px}.loading-spinner[data-v-bba00af5]{border:3px solid #eee;border-top-color:#3b82f6;border-radius:50%;width:32px;height:32px;margin:0 auto 12px;animation:1s linear infinite spin-bba00af5}@keyframes spin-bba00af5{to{transform:rotate(360deg)}}.records-container[data-v-bba00af5]{flex-direction:column;gap:16px;display:flex}.user-group[data-v-bba00af5]{background:#fff;border-radius:12px;padding:16px}.user-header[data-v-bba00af5]{border-bottom:1px solid #eee;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:12px;display:flex}.user-name[data-v-bba00af5]{color:#333;font-size:16px;font-weight:600}.user-phone[data-v-bba00af5]{color:#666;font-size:13px}.user-course[data-v-bba00af5]{color:#3b82f6;background:#e8f2ff;border-radius:4px;padding:2px 8px;font-size:12px}.file-count[data-v-bba00af5]{color:#999;background:#f0f0f0;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:12px}.file-grid[data-v-bba00af5]{-webkit-overflow-scrolling:touch;gap:10px;padding-bottom:8px;display:flex;overflow-x:auto}.file-grid[data-v-bba00af5]::-webkit-scrollbar{height:4px}.file-grid[data-v-bba00af5]::-webkit-scrollbar-track{background:#f0f0f0;border-radius:2px}.file-grid[data-v-bba00af5]::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.file-card[data-v-bba00af5]{background:#f8f9fa;border-radius:8px;flex-direction:column;flex-shrink:0;align-items:center;width:80px;padding:10px 6px;display:flex}.file-preview[data-v-bba00af5]{border-radius:6px;width:60px;height:60px;margin-bottom:4px;overflow:hidden}.file-preview img[data-v-bba00af5]{object-fit:cover;width:100%;height:100%}.file-icon[data-v-bba00af5]{margin-bottom:4px;font-size:24px}.file-name[data-v-bba00af5]{color:#333;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;margin-bottom:2px;font-size:10px;overflow:hidden}.file-meta[data-v-bba00af5]{color:#999;font-size:9px}.file-time[data-v-bba00af5]{color:#bbb;font-size:9px}.file-type-label[data-v-bba00af5]{color:#666;background:#e8e8e8;border-radius:3px;margin-top:4px;padding:1px 6px;font-size:9px}.refresh-btn[data-v-bba00af5]{color:#3b82f6;cursor:pointer;background:#fff;border:1.5px solid #3b82f6;border-radius:10px;width:100%;height:44px;margin-top:16px;font-size:14px}.refresh-btn[data-v-bba00af5]:hover{background:#f0f7ff}.file-card.clickable[data-v-bba00af5]{cursor:pointer}.file-card.clickable[data-v-bba00af5]:hover{background:#eef4ff;transform:scale(1.02)}.video-preview[data-v-bba00af5]{background:#1a1a2e;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.video-icon[data-v-bba00af5]{font-size:28px}.play-icon[data-v-bba00af5]{color:#fff;background:rgba(59,130,246,.8);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding-left:2px;font-size:16px;display:flex;position:absolute}.preview-modal[data-v-bba00af5]{z-index:9999;background:rgba(0,0,0,.9);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.preview-content[data-v-bba00af5]{max-width:100%;max-height:100%;position:relative}.close-btn[data-v-bba00af5]{color:#fff;cursor:pointer;z-index:10;background:rgba(255,255,255,.2);border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:24px;display:flex;position:absolute;top:-40px;right:0}.close-btn[data-v-bba00af5]:hover{background:rgba(255,255,255,.3)}.preview-image[data-v-bba00af5]{object-fit:contain;border-radius:8px;max-width:90vw;max-height:85vh}.preview-video[data-v-bba00af5]{background:#000;border-radius:8px;max-width:90vw;max-height:85vh}.app[data-v-141c3a17]{flex-direction:column;min-height:100vh;display:flex}.app-main[data-v-141c3a17]{flex-direction:column;flex:1;min-height:0;display:flex}.page-fade-enter-active[data-v-141c3a17],.page-fade-leave-active[data-v-141c3a17]{transition:opacity .2s,transform .2s}.page-fade-enter-from[data-v-141c3a17]{opacity:0;transform:translateY(8px)}.page-fade-leave-to[data-v-141c3a17]{opacity:0;transform:translateY(-8px)}
