*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;min-height:100dvh;-webkit-overflow-scrolling:touch;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body{color:#333}.container{max-width:800px;margin:0 auto;padding:max(2rem,env(safe-area-inset-top)) max(2rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(2rem,env(safe-area-inset-left))}.card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 10px 30px rgba(0,0,0,.1);margin-bottom:2rem}.upload-area{border:2px dashed #ccc;border-radius:12px;padding:3rem;text-align:center;cursor:pointer;transition:all .3s ease;background:#fafafa;min-height:200px;display:flex;flex-direction:column;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.upload-area:hover{border-color:#667eea;background:#f0f4ff}.upload-area.dragover{border-color:#667eea;background:#e8f0ff}.button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;transition:all .3s ease;margin:.5rem;min-height:44px;min-width:44px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.button:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(102,126,234,.4)}.button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.progress-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin:1rem 0}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease}.status{padding:1rem;border-radius:8px;margin:1rem 0;font-weight:500}.status.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.status.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.status.info{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.preview-image{max-width:100%;max-height:300px;border-radius:8px;margin:1rem 0;box-shadow:0 4px 12px rgba(0,0,0,.1)}.loading-spinner{border:3px solid #f3f3f3;border-top-color:#667eea;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:1rem auto}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.file-info{background:#f8f9fa;border-radius:8px;padding:1rem;margin:1rem 0;border-left:4px solid #667eea}.file-info h3{margin-bottom:.5rem;color:#333}.file-info p{color:#666;margin:.25rem 0}@media (max-width:768px){.container{padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.card{padding:1.5rem;margin-bottom:1.5rem}.upload-area{padding:2rem;min-height:150px}.button{width:100%;font-size:16px;padding:14px 24px}}.model-preview{max-width:100%;max-height:200px;border-radius:8px;margin:1rem 0;background:#f8f9fa;border:1px solid #e9ecef}.model-info{background:#e8f5e8;border-radius:8px;padding:1rem;margin:1rem 0;border-left:4px solid #28a745}.model-info h4{margin-bottom:.5rem;color:#155724}.model-info p{color:#155724;margin:.25rem 0;font-size:.9rem}.step-indicator{transition:all .3s ease;transform:scale(1)}.step-indicator.active{transform:scale(1.05);box-shadow:0 4px 12px rgba(102,126,234,.3)}.step-indicator.completed{background:linear-gradient(135deg,#28a745,#20c997)!important}.ar-config{background:#fff3cd;border-radius:8px;padding:1rem;margin:1rem 0;border-left:4px solid #ffc107}.ar-config h4{margin-bottom:.5rem;color:#856404}.ar-config p{color:#856404;margin:.25rem 0;font-size:.9rem}.association-controls{background:#f8f9fa;border-radius:8px;padding:1.5rem;margin:1rem 0;border:1px solid #dee2e6}.association-controls h4{margin-bottom:1rem;color:#495057}.transform-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem;margin:1rem 0}.transform-group{display:flex;flex-direction:column}.transform-group label{font-weight:600;margin-bottom:.5rem;color:#495057}.transform-group input{padding:.5rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem}.transform-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px rgba(102,126,234,.25)}@media (max-width:768px){.card{padding:1.5rem;border-radius:12px;margin-bottom:1.5rem}.upload-area{padding:2rem 1rem;min-height:180px}.button{width:100%;margin:.25rem 0;font-size:18px;padding:16px 24px}.preview-image{max-width:100%;max-height:250px}.file-info,.status{font-size:14px}}@media (max-width:480px){.container{padding:.75rem max(.75rem,env(safe-area-inset-right)) .75rem max(.75rem,env(safe-area-inset-left))}.card{padding:1rem;border-radius:8px;margin-bottom:1rem}.upload-area{padding:1.5rem .75rem;min-height:160px;font-size:14px}.button{font-size:16px;padding:14px 20px}h1{font-size:1.8rem!important;line-height:1.2}h2{font-size:1.3rem!important}.progress-bar{height:6px}.loading-spinner{width:32px;height:32px}}@media (max-width:896px) and (orientation:landscape) and (max-height:480px){.container{padding:.5rem}.card{padding:1rem;margin-bottom:.75rem}.upload-area{padding:1rem;min-height:120px}h1{font-size:1.5rem!important;margin-bottom:1rem!important}.preview-image{max-height:150px}}@media (prefers-color-scheme:dark){.card{background:#1a1a1a;color:#e0e0e0}.upload-area{background:#2a2a2a;border-color:#555;color:#e0e0e0}.upload-area:hover{background:#333;border-color:#667eea}.file-info{background:#2a2a2a}.file-info,.file-info h3{color:#e0e0e0}.status.info{background:#1e3a5f;color:#87ceeb;border-color:#2d5aa0}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.preview-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}