.scanner-tabs{display:flex;gap:8px;background:#f3f4f6;border-radius:12px;padding:4px}.scanner-tab{flex:1;padding:10px 16px;font-size:14px;font-weight:600;color:#6b7280;border:none;background:none;border-radius:10px;cursor:pointer;transition:all 0.2s ease;font-family:inherit}.scanner-tab:hover{color:#374151}.scanner-tab.active{background:#fff;color:#4f46e5;box-shadow:0 1px 3px rgb(0 0 0 / .1)}.scanner-mode{display:none}.scanner-mode.active{display:block}.upload-area{border:2px dashed #d1d5db;border-radius:16px;padding:48px 24px;text-align:center;cursor:pointer;transition:border-color 0.2s ease,background 0.2s ease}.upload-area:hover,.upload-area.drag-over{border-color:#6366f1;background:#eef2ff}.upload-preview-container{position:relative;max-width:400px;margin:0 auto;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px rgb(0 0 0 / .1)}.upload-preview-container img{display:block;width:100%;height:auto}.upload-preview-overlay{position:absolute;inset:0;pointer-events:none}.upload-preview-overlay .scan-line{position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#6366f1,transparent);animation:scan-move 1.2s ease-in-out infinite}@keyframes scan-move{0%{top:0}50%{top:100%}100%{top:0}}#camera-viewport{border-radius:12px;overflow:hidden;background:#111;min-height:280px;position:relative}#camera-viewport video{border-radius:12px}.camera-controls{display:flex;justify-content:center;gap:12px}.result-card{background:linear-gradient(135deg,#ecfdf5 0%,#f0fdf4 100%);border:1px solid #bbf7d0;border-radius:14px;overflow:hidden;animation:result-in 0.3s ease}@keyframes result-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.result-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #d1fae5}.result-body{padding:16px}.result-type-badge{display:inline-block;padding:2px 10px;font-size:11px;font-weight:700;letter-spacing:.05em;border-radius:6px;background:#dbeafe;color:#2563eb;margin-bottom:10px}.result-text{font-size:14px;color:#1f2937;background:#fff;border-radius:10px;border:1px solid #e5e7eb;margin-bottom:12px;max-height:300px;overflow-y:auto}.result-formatted{padding:4px 0}.result-row{display:flex;align-items:flex-start;gap:10px;padding:8px 14px;border-bottom:1px solid #f3f4f6}.result-row:last-child{border-bottom:none}.result-row-icon{width:24px;text-align:center;color:#6366f1;font-size:13px;padding-top:2px;flex-shrink:0}.result-row-label{width:90px;font-size:12px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;padding-top:1px;flex-shrink:0}.result-row-value{flex:1;font-size:14px;font-weight:500;color:#1f2937;word-break:break-all;display:flex;align-items:center;gap:6px}.result-link{color:#4f46e5;text-decoration:none;word-break:break-all}.result-link:hover{text-decoration:underline}.result-field-copy{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:none;background:#eef2ff;color:#6366f1;cursor:pointer;font-size:12px;flex-shrink:0;transition:background 0.15s ease}.result-field-copy:hover{background:#e0e7ff}.result-plain{padding:12px 14px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.result-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-sm{padding:6px 14px!important;font-size:13px!important}.history-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:#f9fafb;border-radius:10px;border:1px solid #e5e7eb;transition:background 0.15s ease}.history-item:hover{background:#f3f4f6}.history-item-text{flex:1;font-size:13px;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-copy{flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:600;color:#6366f1;background:#eef2ff;border:none;border-radius:6px;cursor:pointer;font-family:inherit;transition:background 0.15s ease}.history-item-copy:hover{background:#e0e7ff}.copy-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:#1f2937;color:#fff;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;z-index:9999;opacity:0;transition:opacity 0.2s ease,transform 0.2s ease;pointer-events:none}.copy-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media (max-width:640px){.scanner-tab{font-size:13px;padding:8px 12px}.upload-area{padding:32px 16px}#camera-viewport{min-height:220px}}